aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2018-06-12 21:28:00 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2018-06-12 21:28:00 -0400
commitb08fc5277aaa1d8ea15470d38bf36f19dfb0e125 (patch)
tree1910dc474cb1ede95581dd9faa81a3bebeded0dc
parent4597fcff07044d89c646d0c5d8b42cd976d966a1 (diff)
parent9d2a789c1db75d0f55b14fa57bec548d94332ad8 (diff)
Merge tag 'overflow-v4.18-rc1-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux
Pull more overflow updates from Kees Cook: "The rest of the overflow changes for v4.18-rc1. This includes the explicit overflow fixes from Silvio, further struct_size() conversions from Matthew, and a bug fix from Dan. But the bulk of it is the treewide conversions to use either the 2-factor argument allocators (e.g. kmalloc(a * b, ...) into kmalloc_array(a, b, ...) or the array_size() macros (e.g. vmalloc(a * b) into vmalloc(array_size(a, b)). Coccinelle was fighting me on several fronts, so I've done a bunch of manual whitespace updates in the patches as well. Summary: - Error path bug fix for overflow tests (Dan) - Additional struct_size() conversions (Matthew, Kees) - Explicitly reported overflow fixes (Silvio, Kees) - Add missing kvcalloc() function (Kees) - Treewide conversions of allocators to use either 2-factor argument variant when available, or array_size() and array3_size() as needed (Kees)" * tag 'overflow-v4.18-rc1-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux: (26 commits) treewide: Use array_size in f2fs_kvzalloc() treewide: Use array_size() in f2fs_kzalloc() treewide: Use array_size() in f2fs_kmalloc() treewide: Use array_size() in sock_kmalloc() treewide: Use array_size() in kvzalloc_node() treewide: Use array_size() in vzalloc_node() treewide: Use array_size() in vzalloc() treewide: Use array_size() in vmalloc() treewide: devm_kzalloc() -> devm_kcalloc() treewide: devm_kmalloc() -> devm_kmalloc_array() treewide: kvzalloc() -> kvcalloc() treewide: kvmalloc() -> kvmalloc_array() treewide: kzalloc_node() -> kcalloc_node() treewide: kzalloc() -> kcalloc() treewide: kmalloc() -> kmalloc_array() mm: Introduce kvcalloc() video: uvesafb: Fix integer overflow in allocation UBIFS: Fix potential integer overflow in allocation leds: Use struct_size() in allocation Convert intel uncore to struct_size ...
-rw-r--r--arch/arm/kernel/sys_oabi-compat.c4
-rw-r--r--arch/arm/mach-footbridge/dc21285.c2
-rw-r--r--arch/arm/mach-ixp4xx/common-pci.c2
-rw-r--r--arch/arm/mach-omap1/mcbsp.c2
-rw-r--r--arch/arm/mach-omap2/hsmmc.c2
-rw-r--r--arch/arm/mach-omap2/omap_device.c4
-rw-r--r--arch/arm/mach-omap2/prm_common.c9
-rw-r--r--arch/arm/mach-vexpress/spc.c2
-rw-r--r--arch/arm/mm/dma-mapping.c4
-rw-r--r--arch/arm/mm/pgd.c2
-rw-r--r--arch/arm/probes/kprobes/test-core.c5
-rw-r--r--arch/arm64/kernel/armv8_deprecated.c4
-rw-r--r--arch/arm64/mm/context.c2
-rw-r--r--arch/ia64/kernel/mca_drv.c3
-rw-r--r--arch/ia64/kernel/topology.c6
-rw-r--r--arch/ia64/mm/tlb.c5
-rw-r--r--arch/ia64/sn/kernel/io_common.c2
-rw-r--r--arch/ia64/sn/kernel/irq.c3
-rw-r--r--arch/ia64/sn/pci/pcibr/pcibr_provider.c2
-rw-r--r--arch/mips/alchemy/common/clock.c2
-rw-r--r--arch/mips/alchemy/common/dbdma.c6
-rw-r--r--arch/mips/alchemy/common/platform.c4
-rw-r--r--arch/mips/alchemy/devboards/platform.c4
-rw-r--r--arch/mips/bmips/dma.c2
-rw-r--r--arch/mips/txx9/rbtx4939/setup.c2
-rw-r--r--arch/powerpc/kernel/rtasd.c3
-rw-r--r--arch/powerpc/kernel/vdso.c4
-rw-r--r--arch/powerpc/kvm/book3s_64_mmu_hv.c2
-rw-r--r--arch/powerpc/kvm/book3s_hv.c2
-rw-r--r--arch/powerpc/lib/rheap.c2
-rw-r--r--arch/powerpc/mm/mmu_context_iommu.c2
-rw-r--r--arch/powerpc/mm/numa.c2
-rw-r--r--arch/powerpc/net/bpf_jit_comp.c2
-rw-r--r--arch/powerpc/net/bpf_jit_comp64.c2
-rw-r--r--arch/powerpc/oprofile/cell/spu_profiler.c4
-rw-r--r--arch/powerpc/platforms/4xx/hsta_msi.c3
-rw-r--r--arch/powerpc/platforms/4xx/msi.c2
-rw-r--r--arch/powerpc/platforms/4xx/pci.c2
-rw-r--r--arch/powerpc/platforms/powernv/opal-sysparam.c8
-rw-r--r--arch/powerpc/sysdev/mpic.c9
-rw-r--r--arch/powerpc/sysdev/xive/native.c2
-rw-r--r--arch/s390/appldata/appldata_base.c2
-rw-r--r--arch/s390/hypfs/hypfs_diag.c2
-rw-r--r--arch/s390/hypfs/hypfs_diag0c.c3
-rw-r--r--arch/s390/kernel/debug.c6
-rw-r--r--arch/s390/kernel/module.c4
-rw-r--r--arch/s390/kernel/perf_cpum_cf_events.c2
-rw-r--r--arch/s390/kernel/sthyi.c2
-rw-r--r--arch/s390/kernel/vdso.c4
-rw-r--r--arch/s390/kvm/gaccess.c2
-rw-r--r--arch/s390/kvm/kvm-s390.c2
-rw-r--r--arch/s390/mm/extmem.c2
-rw-r--r--arch/sh/drivers/dma/dmabrg.c2
-rw-r--r--arch/sh/drivers/pci/pcie-sh7786.c2
-rw-r--r--arch/sparc/kernel/nmi.c3
-rw-r--r--arch/sparc/kernel/sys_sparc_64.c8
-rw-r--r--arch/sparc/net/bpf_jit_comp_32.c2
-rw-r--r--arch/um/drivers/ubd_kern.c12
-rw-r--r--arch/um/drivers/vector_kern.c12
-rw-r--r--arch/unicore32/kernel/pm.c5
-rw-r--r--arch/x86/events/amd/iommu.c2
-rw-r--r--arch/x86/events/core.c2
-rw-r--r--arch/x86/events/intel/uncore.c21
-rw-r--r--arch/x86/kernel/cpu/mcheck/mce.c2
-rw-r--r--arch/x86/kernel/cpu/mcheck/mce_amd.c2
-rw-r--r--arch/x86/kernel/cpu/mtrr/if.c2
-rw-r--r--arch/x86/kernel/hpet.c6
-rw-r--r--arch/x86/kernel/ksysfs.c2
-rw-r--r--arch/x86/kvm/cpuid.c8
-rw-r--r--arch/x86/kvm/page_track.c5
-rw-r--r--arch/x86/kvm/svm.c4
-rw-r--r--arch/x86/kvm/x86.c5
-rw-r--r--arch/x86/net/bpf_jit_comp.c2
-rw-r--r--arch/x86/net/bpf_jit_comp32.c2
-rw-r--r--arch/x86/pci/xen.c2
-rw-r--r--arch/x86/platform/uv/tlb_uv.c2
-rw-r--r--arch/x86/platform/uv/uv_time.c2
-rw-r--r--block/bio.c3
-rw-r--r--block/blk-mq.c16
-rw-r--r--block/blk-tag.c4
-rw-r--r--block/blk-zoned.c4
-rw-r--r--block/partitions/check.c2
-rw-r--r--block/partitions/ldm.c2
-rw-r--r--crypto/algif_aead.c4
-rw-r--r--crypto/algif_skcipher.c3
-rw-r--r--crypto/testmgr.c3
-rw-r--r--drivers/acpi/acpi_platform.c2
-rw-r--r--drivers/acpi/acpi_video.c5
-rw-r--r--drivers/acpi/apei/erst.c3
-rw-r--r--drivers/acpi/apei/hest.c3
-rw-r--r--drivers/acpi/fan.c4
-rw-r--r--drivers/acpi/nfit/core.c7
-rw-r--r--drivers/acpi/processor_perflib.c5
-rw-r--r--drivers/acpi/processor_throttling.c5
-rw-r--r--drivers/acpi/sysfs.c6
-rw-r--r--drivers/android/binder_alloc.c4
-rw-r--r--drivers/ata/libata-core.c2
-rw-r--r--drivers/ata/libata-pmp.c2
-rw-r--r--drivers/ata/sata_mv.c8
-rw-r--r--drivers/atm/fore200e.c3
-rw-r--r--drivers/atm/iphase.c2
-rw-r--r--drivers/atm/solos-pci.c3
-rw-r--r--drivers/auxdisplay/cfag12864b.c4
-rw-r--r--drivers/base/firmware_loader/fallback.c2
-rw-r--r--drivers/block/DAC960.c4
-rw-r--r--drivers/block/drbd/drbd_main.c3
-rw-r--r--drivers/block/loop.c3
-rw-r--r--drivers/block/null_blk.c9
-rw-r--r--drivers/block/ps3vram.c5
-rw-r--r--drivers/block/rsxx/core.c3
-rw-r--r--drivers/block/rsxx/dma.c2
-rw-r--r--drivers/block/xen-blkback/xenbus.c3
-rw-r--r--drivers/block/xen-blkfront.c23
-rw-r--r--drivers/block/z2ram.c5
-rw-r--r--drivers/block/zram/zram_drv.c2
-rw-r--r--drivers/bus/fsl-mc/fsl-mc-allocator.c6
-rw-r--r--drivers/cdrom/cdrom.c2
-rw-r--r--drivers/char/agp/amd-k7-agp.c3
-rw-r--r--drivers/char/agp/ati-agp.c3
-rw-r--r--drivers/char/agp/compat_ioctl.c8
-rw-r--r--drivers/char/agp/isoch.c3
-rw-r--r--drivers/char/agp/sgi-agp.c6
-rw-r--r--drivers/char/agp/sworks-agp.c2
-rw-r--r--drivers/char/agp/uninorth-agp.c4
-rw-r--r--drivers/char/ipmi/ipmi_ssif.c3
-rw-r--r--drivers/char/raw.c3
-rw-r--r--drivers/char/tpm/tpm2-cmd.c2
-rw-r--r--drivers/char/virtio_console.c18
-rw-r--r--drivers/clk/bcm/clk-bcm2835.c4
-rw-r--r--drivers/clk/renesas/clk-r8a7740.c2
-rw-r--r--drivers/clk/renesas/clk-r8a7779.c2
-rw-r--r--drivers/clk/renesas/clk-rcar-gen2.c2
-rw-r--r--drivers/clk/renesas/clk-rz.c2
-rw-r--r--drivers/clk/st/clkgen-fsyn.c2
-rw-r--r--drivers/clk/st/clkgen-pll.c2
-rw-r--r--drivers/clk/sunxi/clk-usb.c2
-rw-r--r--drivers/clk/tegra/clk.c7
-rw-r--r--drivers/clk/ti/adpll.c6
-rw-r--r--drivers/clk/ti/apll.c2
-rw-r--r--drivers/clk/ti/divider.c4
-rw-r--r--drivers/clk/ti/dpll.c2
-rw-r--r--drivers/clocksource/sh_cmt.c2
-rw-r--r--drivers/clocksource/sh_mtu2.c2
-rw-r--r--drivers/clocksource/sh_tmu.c2
-rw-r--r--drivers/cpufreq/acpi-cpufreq.c4
-rw-r--r--drivers/cpufreq/arm_big_little.c2
-rw-r--r--drivers/cpufreq/bmips-cpufreq.c2
-rw-r--r--drivers/cpufreq/brcmstb-avs-cpufreq.c2
-rw-r--r--drivers/cpufreq/cppc_cpufreq.c3
-rw-r--r--drivers/cpufreq/ia64-acpi-cpufreq.c4
-rw-r--r--drivers/cpufreq/imx6q-cpufreq.c3
-rw-r--r--drivers/cpufreq/intel_pstate.c2
-rw-r--r--drivers/cpufreq/longhaul.c4
-rw-r--r--drivers/cpufreq/pxa3xx-cpufreq.c2
-rw-r--r--drivers/cpufreq/s3c24xx-cpufreq.c2
-rw-r--r--drivers/cpufreq/sfi-cpufreq.c4
-rw-r--r--drivers/cpufreq/spear-cpufreq.c2
-rw-r--r--drivers/crypto/amcc/crypto4xx_core.c8
-rw-r--r--drivers/crypto/cavium/nitrox/nitrox_isr.c2
-rw-r--r--drivers/crypto/chelsio/chtls/chtls_io.c2
-rw-r--r--drivers/crypto/inside-secure/safexcel_hash.c2
-rw-r--r--drivers/crypto/marvell/cesa.c2
-rw-r--r--drivers/crypto/marvell/hash.c2
-rw-r--r--drivers/crypto/n2_core.c4
-rw-r--r--drivers/crypto/qat/qat_common/adf_isr.c2
-rw-r--r--drivers/crypto/qat/qat_common/qat_uclo.c5
-rw-r--r--drivers/crypto/stm32/stm32-hash.c5
-rw-r--r--drivers/crypto/talitos.c13
-rw-r--r--drivers/crypto/virtio/virtio_crypto_algs.c2
-rw-r--r--drivers/devfreq/devfreq.c15
-rw-r--r--drivers/devfreq/event/exynos-ppmu.c2
-rw-r--r--drivers/dma/bestcomm/bestcomm.c3
-rw-r--r--drivers/dma/ioat/init.c4
-rw-r--r--drivers/dma/ipu/ipu_idmac.c3
-rw-r--r--drivers/dma/k3dma.c8
-rw-r--r--drivers/dma/mic_x100_dma.c3
-rw-r--r--drivers/dma/mv_xor.c4
-rw-r--r--drivers/dma/mv_xor_v2.c5
-rw-r--r--drivers/dma/pl330.c4
-rw-r--r--drivers/dma/s3c24xx-dma.c6
-rw-r--r--drivers/dma/sh/shdma-base.c5
-rw-r--r--drivers/dma/xilinx/zynqmp_dma.c2
-rw-r--r--drivers/dma/zx_dma.c8
-rw-r--r--drivers/edac/amd64_edac.c2
-rw-r--r--drivers/edac/i7core_edac.c2
-rw-r--r--drivers/extcon/extcon.c24
-rw-r--r--drivers/firewire/core-iso.c4
-rw-r--r--drivers/firewire/net.c2
-rw-r--r--drivers/firmware/arm_scpi.c2
-rw-r--r--drivers/firmware/dell_rbu.c2
-rw-r--r--drivers/firmware/efi/capsule.c2
-rw-r--r--drivers/firmware/efi/runtime-map.c2
-rw-r--r--drivers/firmware/ti_sci.c6
-rw-r--r--drivers/fmc/fmc-sdb.c4
-rw-r--r--drivers/gpio/gpio-adnp.c2
-rw-r--r--drivers/gpio/gpio-aspeed.c4
-rw-r--r--drivers/gpio/gpio-bcm-kona.c7
-rw-r--r--drivers/gpio/gpio-davinci.c4
-rw-r--r--drivers/gpio/gpio-htc-egpio.c4
-rw-r--r--drivers/gpio/gpio-ml-ioh.c2
-rw-r--r--drivers/gpio/gpio-thunderx.c9
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c6
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c4
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c4
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c4
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.c2
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c3
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_test.c2
-rw-r--r--drivers/gpu/drm/amd/amdgpu/atom.c2
-rw-r--r--drivers/gpu/drm/amd/amdgpu/ci_dpm.c9
-rw-r--r--drivers/gpu/drm/amd/amdgpu/kv_dpm.c5
-rw-r--r--drivers/gpu/drm/amd/amdgpu/si_dpm.c9
-rw-r--r--drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c2
-rw-r--r--drivers/gpu/drm/amd/display/dc/basics/logger.c2
-rw-r--r--drivers/gpu/drm/amd/display/dc/basics/vector.c4
-rw-r--r--drivers/gpu/drm/amd/display/dc/dce/dce_clock_source.c6
-rw-r--r--drivers/gpu/drm/amd/display/dc/gpio/gpio_service.c3
-rw-r--r--drivers/gpu/drm/amd/display/modules/color/color_gamma.c47
-rw-r--r--drivers/gpu/drm/amd/display/modules/freesync/freesync.c3
-rw-r--r--drivers/gpu/drm/amd/display/modules/stats/stats.c12
-rw-r--r--drivers/gpu/drm/amd/powerplay/hwmgr/pp_psm.c2
-rw-r--r--drivers/gpu/drm/drm_edid.c3
-rw-r--r--drivers/gpu/drm/drm_hashtab.c2
-rw-r--r--drivers/gpu/drm/drm_memory.c2
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_dsi.c4
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_fimc.c3
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_gsc.c5
-rw-r--r--drivers/gpu/drm/exynos/exynos_hdmi.c2
-rw-r--r--drivers/gpu/drm/gma500/mid_bios.c2
-rw-r--r--drivers/gpu/drm/i915/gvt/gtt.c5
-rw-r--r--drivers/gpu/drm/i915/gvt/mmio.c2
-rw-r--r--drivers/gpu/drm/i915/gvt/vgpu.c2
-rw-r--r--drivers/gpu/drm/i915/intel_hdcp.c2
-rw-r--r--drivers/gpu/drm/i915/selftests/intel_uncore.c2
-rw-r--r--drivers/gpu/drm/msm/hdmi/hdmi.c24
-rw-r--r--drivers/gpu/drm/msm/hdmi/hdmi_phy.c4
-rw-r--r--drivers/gpu/drm/nouveau/nv84_fence.c2
-rw-r--r--drivers/gpu/drm/nouveau/nvif/fifo.c4
-rw-r--r--drivers/gpu/drm/nouveau/nvif/mmu.c9
-rw-r--r--drivers/gpu/drm/nouveau/nvif/object.c2
-rw-r--r--drivers/gpu/drm/nouveau/nvif/vmm.c3
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/core/event.c3
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c2
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/subdev/bios/iccsense.c3
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgt215.c2
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/subdev/mmu/mem.c4
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c2
-rw-r--r--drivers/gpu/drm/omapdrm/omap_dmm_tiler.c4
-rw-r--r--drivers/gpu/drm/omapdrm/omap_gem.c4
-rw-r--r--drivers/gpu/drm/qxl/qxl_fb.c2
-rw-r--r--drivers/gpu/drm/qxl/qxl_kms.c4
-rw-r--r--drivers/gpu/drm/radeon/atom.c2
-rw-r--r--drivers/gpu/drm/radeon/btc_dpm.c4
-rw-r--r--drivers/gpu/drm/radeon/ci_dpm.c9
-rw-r--r--drivers/gpu/drm/radeon/kv_dpm.c5
-rw-r--r--drivers/gpu/drm/radeon/ni_dpm.c9
-rw-r--r--drivers/gpu/drm/radeon/r600_dpm.c2
-rw-r--r--drivers/gpu/drm/radeon/radeon_atombios.c39
-rw-r--r--drivers/gpu/drm/radeon/radeon_combios.c9
-rw-r--r--drivers/gpu/drm/radeon/radeon_gart.c7
-rw-r--r--drivers/gpu/drm/radeon/radeon_test.c2
-rw-r--r--drivers/gpu/drm/radeon/rs780_dpm.c5
-rw-r--r--drivers/gpu/drm/radeon/rv6xx_dpm.c5
-rw-r--r--drivers/gpu/drm/radeon/rv770_dpm.c5
-rw-r--r--drivers/gpu/drm/radeon/si_dpm.c9
-rw-r--r--drivers/gpu/drm/radeon/sumo_dpm.c5
-rw-r--r--drivers/gpu/drm/radeon/trinity_dpm.c5
-rw-r--r--drivers/gpu/drm/savage/savage_bci.c5
-rw-r--r--drivers/gpu/drm/selftests/test-drm_mm.c24
-rw-r--r--drivers/gpu/drm/tinydrm/repaper.c2
-rw-r--r--drivers/gpu/drm/ttm/ttm_page_alloc.c8
-rw-r--r--drivers/gpu/drm/ttm/ttm_page_alloc_dma.c8
-rw-r--r--drivers/gpu/drm/vc4/vc4_plane.c2
-rw-r--r--drivers/gpu/drm/via/via_dmablit.c2
-rw-r--r--drivers/hid/hid-core.c9
-rw-r--r--drivers/hid/hid-debug.c6
-rw-r--r--drivers/hid/hid-picolcd_fb.c3
-rw-r--r--drivers/hid/hid-sensor-hub.c3
-rw-r--r--drivers/hid/hidraw.c2
-rw-r--r--drivers/hid/intel-ish-hid/ishtp-hid-client.c4
-rw-r--r--drivers/hid/wacom_sys.c4
-rw-r--r--drivers/hv/hv.c2
-rw-r--r--drivers/hv/ring_buffer.c2
-rw-r--r--drivers/hwmon/acpi_power_meter.c7
-rw-r--r--drivers/hwmon/aspeed-pwm-tacho.c2
-rw-r--r--drivers/hwmon/coretemp.c2
-rw-r--r--drivers/hwmon/gpio-fan.c8
-rw-r--r--drivers/hwmon/i5k_amb.c5
-rw-r--r--drivers/hwmon/ibmpex.c2
-rw-r--r--drivers/hwmon/ibmpowernv.c9
-rw-r--r--drivers/hwmon/iio_hwmon.c4
-rw-r--r--drivers/hwmon/nct6683.c4
-rw-r--r--drivers/hwmon/nct6775.c4
-rw-r--r--drivers/hwmon/pmbus/pmbus_core.c4
-rw-r--r--drivers/hwmon/pmbus/ucd9000.c4
-rw-r--r--drivers/hwmon/pwm-fan.c2
-rw-r--r--drivers/hwtracing/coresight/coresight-etb10.c4
-rw-r--r--drivers/hwtracing/coresight/of_coresight.c9
-rw-r--r--drivers/i2c/busses/i2c-amd756-s4882.c4
-rw-r--r--drivers/i2c/busses/i2c-nforce2-s4985.c4
-rw-r--r--drivers/i2c/busses/i2c-nforce2.c2
-rw-r--r--drivers/i2c/busses/i2c-qup.c8
-rw-r--r--drivers/i2c/i2c-dev.c2
-rw-r--r--drivers/i2c/i2c-stub.c5
-rw-r--r--drivers/i2c/muxes/i2c-mux-gpio.c9
-rw-r--r--drivers/i2c/muxes/i2c-mux-reg.c4
-rw-r--r--drivers/ide/hpt366.c2
-rw-r--r--drivers/ide/ide-probe.c5
-rw-r--r--drivers/ide/it821x.c2
-rw-r--r--drivers/iio/adc/at91_adc.c7
-rw-r--r--drivers/iio/adc/max1027.c4
-rw-r--r--drivers/iio/adc/max1363.c6
-rw-r--r--drivers/iio/adc/twl6030-gpadc.c7
-rw-r--r--drivers/iio/dac/ad5592r-base.c5
-rw-r--r--drivers/iio/imu/adis_buffer.c2
-rw-r--r--drivers/iio/inkern.c2
-rw-r--r--drivers/iio/multiplexer/iio-mux.c7
-rw-r--r--drivers/infiniband/core/cache.c5
-rw-r--r--drivers/infiniband/core/cma.c4
-rw-r--r--drivers/infiniband/core/device.c4
-rw-r--r--drivers/infiniband/core/fmr_pool.c5
-rw-r--r--drivers/infiniband/core/iwpm_util.c10
-rw-r--r--drivers/infiniband/core/umem_odp.c16
-rw-r--r--drivers/infiniband/core/uverbs_cmd.c4
-rw-r--r--drivers/infiniband/hw/cxgb3/cxio_hal.c4
-rw-r--r--drivers/infiniband/hw/cxgb4/device.c7
-rw-r--r--drivers/infiniband/hw/cxgb4/id_table.c4
-rw-r--r--drivers/infiniband/hw/cxgb4/qp.c8
-rw-r--r--drivers/infiniband/hw/hfi1/sdma.c3
-rw-r--r--drivers/infiniband/hw/hns/hns_roce_hw_v2.c2
-rw-r--r--drivers/infiniband/hw/hns/hns_roce_mr.c2
-rw-r--r--drivers/infiniband/hw/mlx4/mad.c3
-rw-r--r--drivers/infiniband/hw/mlx4/main.c12
-rw-r--r--drivers/infiniband/hw/mlx4/qp.c4
-rw-r--r--drivers/infiniband/hw/mlx5/srq.c4
-rw-r--r--drivers/infiniband/hw/mthca/mthca_allocator.c18
-rw-r--r--drivers/infiniband/hw/mthca/mthca_cmd.c6
-rw-r--r--drivers/infiniband/hw/mthca/mthca_eq.c6
-rw-r--r--drivers/infiniband/hw/mthca/mthca_memfree.c6
-rw-r--r--drivers/infiniband/hw/mthca/mthca_mr.c4
-rw-r--r--drivers/infiniband/hw/mthca/mthca_profile.c2
-rw-r--r--drivers/infiniband/hw/mthca/mthca_qp.c4
-rw-r--r--drivers/infiniband/hw/mthca/mthca_srq.c2
-rw-r--r--drivers/infiniband/hw/nes/nes_mgt.c3
-rw-r--r--drivers/infiniband/hw/nes/nes_nic.c2
-rw-r--r--drivers/infiniband/hw/nes/nes_verbs.c5
-rw-r--r--drivers/infiniband/hw/ocrdma/ocrdma_hw.c2
-rw-r--r--drivers/infiniband/hw/ocrdma/ocrdma_main.c11
-rw-r--r--drivers/infiniband/hw/ocrdma/ocrdma_verbs.c15
-rw-r--r--drivers/infiniband/hw/qedr/main.c4
-rw-r--r--drivers/infiniband/hw/qedr/verbs.c4
-rw-r--r--drivers/infiniband/hw/qib/qib_iba6120.c9
-rw-r--r--drivers/infiniband/hw/qib/qib_iba7220.c9
-rw-r--r--drivers/infiniband/hw/qib/qib_iba7322.c34
-rw-r--r--drivers/infiniband/hw/qib/qib_init.c14
-rw-r--r--drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c2
-rw-r--r--drivers/infiniband/hw/usnic/usnic_vnic.c2
-rw-r--r--drivers/infiniband/sw/rdmavt/qp.c11
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib_cm.c8
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib_main.c10
-rw-r--r--drivers/infiniband/ulp/iser/iser_initiator.c5
-rw-r--r--drivers/infiniband/ulp/isert/ib_isert.c5
-rw-r--r--drivers/infiniband/ulp/srp/ib_srp.c9
-rw-r--r--drivers/infiniband/ulp/srpt/ib_srpt.c2
-rw-r--r--drivers/input/joystick/joydump.c2
-rw-r--r--drivers/input/keyboard/clps711x-keypad.c4
-rw-r--r--drivers/input/keyboard/matrix_keypad.c6
-rw-r--r--drivers/input/keyboard/omap4-keypad.c3
-rw-r--r--drivers/input/keyboard/samsung-keypad.c2
-rw-r--r--drivers/input/matrix-keymap.c4
-rw-r--r--drivers/input/misc/rotary_encoder.c4
-rw-r--r--drivers/input/rmi4/rmi_driver.c9
-rw-r--r--drivers/input/rmi4/rmi_f11.c15
-rw-r--r--drivers/input/rmi4/rmi_f12.c15
-rw-r--r--drivers/input/rmi4/rmi_f54.c2
-rw-r--r--drivers/input/rmi4/rmi_spi.c9
-rw-r--r--drivers/iommu/arm-smmu.c2
-rw-r--r--drivers/iommu/dmar.c2
-rw-r--r--drivers/iommu/intel-iommu.c4
-rw-r--r--drivers/iommu/omap-iommu.c2
-rw-r--r--drivers/iommu/rockchip-iommu.c2
-rw-r--r--drivers/iommu/tegra-gart.c2
-rw-r--r--drivers/ipack/carriers/tpci200.c4
-rw-r--r--drivers/irqchip/irq-alpine-msi.c3
-rw-r--r--drivers/irqchip/irq-gic-v2m.c2
-rw-r--r--drivers/irqchip/irq-gic-v3-its.c19
-rw-r--r--drivers/irqchip/irq-gic-v3.c5
-rw-r--r--drivers/irqchip/irq-imgpdc.c2
-rw-r--r--drivers/irqchip/irq-mvebu-gicp.c8
-rw-r--r--drivers/irqchip/irq-partition-percpu.c2
-rw-r--r--drivers/irqchip/irq-s3c24xx.c2
-rw-r--r--drivers/isdn/capi/capi.c2
-rw-r--r--drivers/isdn/capi/capidrv.c3
-rw-r--r--drivers/isdn/gigaset/capi.c6
-rw-r--r--drivers/isdn/gigaset/common.c4
-rw-r--r--drivers/isdn/gigaset/i4l.c2
-rw-r--r--drivers/isdn/hardware/avm/b1.c2
-rw-r--r--drivers/isdn/hisax/fsm.c4
-rw-r--r--drivers/isdn/hisax/hfc_2bds0.c2
-rw-r--r--drivers/isdn/hisax/hfc_2bs0.c3
-rw-r--r--drivers/isdn/hisax/netjet.c12
-rw-r--r--drivers/isdn/i4l/isdn_bsdcomp.c5
-rw-r--r--drivers/isdn/i4l/isdn_common.c10
-rw-r--r--drivers/isdn/mISDN/fsm.c6
-rw-r--r--drivers/leds/leds-adp5520.c2
-rw-r--r--drivers/leds/leds-apu.c4
-rw-r--r--drivers/leds/leds-cr0014114.c3
-rw-r--r--drivers/leds/leds-da9052.c4
-rw-r--r--drivers/leds/leds-lp5521.c4
-rw-r--r--drivers/leds/leds-lp5523.c4
-rw-r--r--drivers/leds/leds-lp5562.c4
-rw-r--r--drivers/leds/leds-lp55xx-common.c2
-rw-r--r--drivers/leds/leds-lp8501.c4
-rw-r--r--drivers/leds/leds-lt3593.c4
-rw-r--r--drivers/leds/leds-mc13783.c4
-rw-r--r--drivers/leds/leds-mlxcpld.c6
-rw-r--r--drivers/leds/leds-netxbig.c16
-rw-r--r--drivers/leds/leds-ns2.c7
-rw-r--r--drivers/leds/leds-pca955x.c8
-rw-r--r--drivers/leds/leds-pca963x.c6
-rw-r--r--drivers/leds/leds-tca6507.c4
-rw-r--r--drivers/lightnvm/pblk-gc.c2
-rw-r--r--drivers/lightnvm/pblk-init.c8
-rw-r--r--drivers/lightnvm/pblk-recovery.c2
-rw-r--r--drivers/mailbox/hi6220-mailbox.c8
-rw-r--r--drivers/mailbox/mailbox-sti.c4
-rw-r--r--drivers/mailbox/omap-mailbox.c10
-rw-r--r--drivers/mailbox/pcc.c3
-rw-r--r--drivers/mailbox/ti-msgmgr.c4
-rw-r--r--drivers/md/bcache/super.c11
-rw-r--r--drivers/md/bcache/sysfs.c3
-rw-r--r--drivers/md/dm-cache-policy-smq.c4
-rw-r--r--drivers/md/dm-crypt.c5
-rw-r--r--drivers/md/dm-integrity.c18
-rw-r--r--drivers/md/dm-region-hash.c2
-rw-r--r--drivers/md/dm-snap.c9
-rw-r--r--drivers/md/dm-stats.c4
-rw-r--r--drivers/md/dm-switch.c3
-rw-r--r--drivers/md/dm-table.c2
-rw-r--r--drivers/md/dm-thin.c4
-rw-r--r--drivers/md/dm-verity-target.c5
-rw-r--r--drivers/md/md-bitmap.c6
-rw-r--r--drivers/md/md-cluster.c6
-rw-r--r--drivers/md/md-multipath.c3
-rw-r--r--drivers/md/raid0.c10
-rw-r--r--drivers/md/raid1.c13
-rw-r--r--drivers/md/raid10.c15
-rw-r--r--drivers/md/raid5.c15
-rw-r--r--drivers/media/common/v4l2-tpg/v4l2-tpg-core.c15
-rw-r--r--drivers/media/dvb-core/dmxdev.c3
-rw-r--r--drivers/media/dvb-core/dvb_demux.c6
-rw-r--r--drivers/media/dvb-frontends/dib7000p.c4
-rw-r--r--drivers/media/dvb-frontends/dib8000.c4
-rw-r--r--drivers/media/dvb-frontends/dib9000.c4
-rw-r--r--drivers/media/i2c/s5k5baf.c2
-rw-r--r--drivers/media/pci/bt8xx/bttv-risc.c3
-rw-r--r--drivers/media/pci/cx23885/cx23885-alsa.c2
-rw-r--r--drivers/media/pci/cx25821/cx25821-alsa.c2
-rw-r--r--drivers/media/pci/cx88/cx88-alsa.c2
-rw-r--r--drivers/media/pci/ivtv/ivtvfb.c2
-rw-r--r--drivers/media/pci/meye/meye.c2
-rw-r--r--drivers/media/pci/pt1/pt1.c2
-rw-r--r--drivers/media/pci/saa7134/saa7134-alsa.c2
-rw-r--r--drivers/media/pci/ttpci/av7110_ipack.c2
-rw-r--r--drivers/media/platform/am437x/am437x-vpfe.c6
-rw-r--r--drivers/media/platform/davinci/vpif_capture.c10
-rw-r--r--drivers/media/platform/qcom/camss-8x16/camss-csid.c8
-rw-r--r--drivers/media/platform/qcom/camss-8x16/camss-csiphy.c11
-rw-r--r--drivers/media/platform/qcom/camss-8x16/camss-ispif.c9
-rw-r--r--drivers/media/platform/qcom/camss-8x16/camss-vfe.c8
-rw-r--r--drivers/media/platform/qcom/camss-8x16/camss.c3
-rw-r--r--drivers/media/platform/soc_camera/soc_camera.c3
-rw-r--r--drivers/media/platform/vivid/vivid-core.c9
-rw-r--r--drivers/media/platform/vsp1/vsp1_entity.c3
-rw-r--r--drivers/media/platform/xilinx/xilinx-vipp.c2
-rw-r--r--drivers/media/usb/au0828/au0828-video.c6
-rw-r--r--drivers/media/usb/cpia2/cpia2_usb.c3
-rw-r--r--drivers/media/usb/cx231xx/cx231xx-audio.c2
-rw-r--r--drivers/media/usb/cx231xx/cx231xx-core.c8
-rw-r--r--drivers/media/usb/cx231xx/cx231xx-vbi.c4
-rw-r--r--drivers/media/usb/go7007/go7007-fw.c2
-rw-r--r--drivers/media/usb/go7007/go7007-usb.c3
-rw-r--r--drivers/media/usb/gspca/t613.c2
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-hdw.c2
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-std.c2
-rw-r--r--drivers/media/usb/stk1160/stk1160-core.c5
-rw-r--r--drivers/media/usb/stk1160/stk1160-video.c6
-rw-r--r--drivers/media/usb/stkwebcam/stk-webcam.c5
-rw-r--r--drivers/media/usb/tm6000/tm6000-video.c13
-rw-r--r--drivers/media/usb/usbtv/usbtv-video.c2
-rw-r--r--drivers/media/usb/usbvision/usbvision-video.c3
-rw-r--r--drivers/media/usb/uvc/uvc_video.c4
-rw-r--r--drivers/media/v4l2-core/v4l2-event.c3
-rw-r--r--drivers/media/v4l2-core/v4l2-flash-led-class.c7
-rw-r--r--drivers/media/v4l2-core/videobuf-dma-sg.c7
-rw-r--r--drivers/memory/of_memory.c4
-rw-r--r--drivers/memstick/core/ms_block.c6
-rw-r--r--drivers/message/fusion/mptlan.c7
-rw-r--r--drivers/mfd/ab8500-debugfs.c12
-rw-r--r--drivers/mfd/cros_ec_dev.c7
-rw-r--r--drivers/mfd/htc-i2cpld.c4
-rw-r--r--drivers/mfd/mfd-core.c2
-rw-r--r--drivers/mfd/motorola-cpcap.c6
-rw-r--r--drivers/mfd/sprd-sc27xx-spi.c5
-rw-r--r--drivers/mfd/timberdale.c4
-rw-r--r--drivers/mfd/twl-core.c5
-rw-r--r--drivers/mfd/wm8994-core.c7
-rw-r--r--drivers/misc/altera-stapl/altera.c6
-rw-r--r--drivers/misc/cxl/guest.c2
-rw-r--r--drivers/misc/cxl/of.c2
-rw-r--r--drivers/misc/eeprom/idt_89hpesx.c2
-rw-r--r--drivers/misc/genwqe/card_ddcb.c9
-rw-r--r--drivers/misc/sgi-xp/xpc_main.c8
-rw-r--r--drivers/misc/sgi-xp/xpc_partition.c2
-rw-r--r--drivers/misc/sgi-xp/xpnet.c5
-rw-r--r--drivers/misc/sram.c6
-rw-r--r--drivers/misc/vmw_vmci/vmci_queue_pair.c6
-rw-r--r--drivers/mmc/host/sdhci-omap.c6
-rw-r--r--drivers/mtd/ar7part.c2
-rw-r--r--drivers/mtd/bcm47xxpart.c2
-rw-r--r--drivers/mtd/chips/cfi_cmdset_0001.c9
-rw-r--r--drivers/mtd/chips/cfi_cmdset_0002.c7
-rw-r--r--drivers/mtd/chips/cfi_cmdset_0020.c5
-rw-r--r--drivers/mtd/devices/docg3.c4
-rw-r--r--drivers/mtd/ftl.c15
-rw-r--r--drivers/mtd/inftlmount.c6
-rw-r--r--drivers/mtd/lpddr/lpddr_cmds.c2
-rw-r--r--drivers/mtd/maps/physmap_of_core.c4
-rw-r--r--drivers/mtd/maps/vmu-flash.c8
-rw-r--r--drivers/mtd/mtdconcat.c5
-rw-r--r--drivers/mtd/mtdoops.c6
-rw-r--r--drivers/mtd/mtdswap.c6
-rw-r--r--drivers/mtd/nand/onenand/onenand_base.c6
-rw-r--r--drivers/mtd/nand/raw/nand_bch.c2
-rw-r--r--drivers/mtd/nand/raw/nandsim.c7
-rw-r--r--drivers/mtd/nand/raw/qcom_nandc.c4
-rw-r--r--drivers/mtd/nand/raw/s3c2410.c2
-rw-r--r--drivers/mtd/nftlmount.c7
-rw-r--r--drivers/mtd/ofpart.c4
-rw-r--r--drivers/mtd/parsers/parser_trx.c2
-rw-r--r--drivers/mtd/parsers/sharpslpart.c5
-rw-r--r--drivers/mtd/rfd_ftl.c3
-rw-r--r--drivers/mtd/sm_ftl.c6
-rw-r--r--drivers/mtd/ssfdc.c5
-rw-r--r--drivers/mtd/tests/pagetest.c2
-rw-r--r--drivers/mtd/tests/stresstest.c2
-rw-r--r--drivers/mtd/ubi/eba.c14
-rw-r--r--drivers/mtd/ubi/wl.c2
-rw-r--r--drivers/net/bonding/bond_main.c2
-rw-r--r--drivers/net/can/grcan.c4
-rw-r--r--drivers/net/can/slcan.c2
-rw-r--r--drivers/net/dsa/b53/b53_common.c8
-rw-r--r--drivers/net/ethernet/amazon/ena/ena_ethtool.c8
-rw-r--r--drivers/net/ethernet/amd/lance.c8
-rw-r--r--drivers/net/ethernet/atheros/atl1c/atl1c_ethtool.c4
-rw-r--r--drivers/net/ethernet/atheros/atl1e/atl1e_ethtool.c4
-rw-r--r--drivers/net/ethernet/atheros/atlx/atl2.c4
-rw-r--r--drivers/net/ethernet/broadcom/bcm63xx_enet.c4
-rw-r--r--drivers/net/ethernet/broadcom/bnx2.c9
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c13
-rw-r--r--drivers/net/ethernet/broadcom/bnxt/bnxt_vfr.c4
-rw-r--r--drivers/net/ethernet/broadcom/cnic.c10
-rw-r--r--drivers/net/ethernet/broadcom/tg3.c5
-rw-r--r--drivers/net/ethernet/brocade/bna/bnad.c4
-rw-r--r--drivers/net/ethernet/calxeda/xgmac.c4
-rw-r--r--drivers/net/ethernet/cavium/liquidio/octeon_droq.c9
-rw-r--r--drivers/net/ethernet/cavium/liquidio/request_manager.c5
-rw-r--r--drivers/net/ethernet/cavium/thunder/nicvf_queues.c4
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4/clip_tbl.c2
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c2
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c10
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c3
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.c4
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4/sge.c2
-rw-r--r--drivers/net/ethernet/cortina/gemini.c4
-rw-r--r--drivers/net/ethernet/ethoc.c3
-rw-r--r--drivers/net/ethernet/freescale/dpaa/dpaa_eth.c2
-rw-r--r--drivers/net/ethernet/freescale/ucc_geth.c12
-rw-r--r--drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c4
-rw-r--r--drivers/net/ethernet/hisilicon/hns/hns_enet.c3
-rw-r--r--drivers/net/ethernet/hisilicon/hns3/hns3_enet.c6
-rw-r--r--drivers/net/ethernet/huawei/hinic/hinic_hw_cmdq.c5
-rw-r--r--drivers/net/ethernet/ibm/ibmveth.c2
-rw-r--r--drivers/net/ethernet/intel/e1000/e1000_ethtool.c4
-rw-r--r--drivers/net/ethernet/intel/e1000e/ethtool.c4
-rw-r--r--drivers/net/ethernet/intel/e1000e/netdev.c2
-rw-r--r--drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c2
-rw-r--r--drivers/net/ethernet/intel/igb/igb_ethtool.c16
-rw-r--r--drivers/net/ethernet/intel/igb/igb_main.c7
-rw-r--r--drivers/net/ethernet/intel/ixgb/ixgb_ethtool.c5
-rw-r--r--drivers/net/ethernet/intel/ixgb/ixgb_main.c5
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c4
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_main.c4
-rw-r--r--drivers/net/ethernet/intel/ixgbevf/ethtool.c8
-rw-r--r--drivers/net/ethernet/jme.c10
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/alloc.c4
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/cmd.c21
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/en_netdev.c20
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/eq.c5
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/icm.c2
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/main.c5
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/resource_tracker.c26
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/en_main.c16
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c10
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/fpga/ipsec.c2
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c5
-rw-r--r--drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c3
-rw-r--r--drivers/net/ethernet/micrel/ksz884x.c2
-rw-r--r--drivers/net/ethernet/moxa/moxart_ether.c8
-rw-r--r--drivers/net/ethernet/neterion/vxge/vxge-config.c21
-rw-r--r--drivers/net/ethernet/neterion/vxge/vxge-main.c4
-rw-r--r--drivers/net/ethernet/netronome/nfp/abm/main.c2
-rw-r--r--drivers/net/ethernet/netronome/nfp/flower/metadata.c3
-rw-r--r--drivers/net/ethernet/ni/nixge.c5
-rw-r--r--drivers/net/ethernet/nvidia/forcedeth.c6
-rw-r--r--drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c2
-rw-r--r--drivers/net/ethernet/pasemi/pasemi_mac.c10
-rw-r--r--drivers/net/ethernet/qlogic/qed/qed_debug.c5
-rw-r--r--drivers/net/ethernet/qlogic/qed/qed_dev.c16
-rw-r--r--drivers/net/ethernet/qlogic/qed/qed_init_ops.c4
-rw-r--r--drivers/net/ethernet/qlogic/qed/qed_l2.c4
-rw-r--r--drivers/net/ethernet/qlogic/qed/qed_mcp.c6
-rw-r--r--drivers/net/ethernet/qlogic/qede/qede_filter.c5
-rw-r--r--drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c5
-rw-r--r--drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c15
-rw-r--r--drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c8
-rw-r--r--drivers/net/ethernet/qlogic/qlge/qlge_main.c3
-rw-r--r--drivers/net/ethernet/sfc/ef10.c3
-rw-r--r--drivers/net/ethernet/sfc/falcon/farch.c3
-rw-r--r--drivers/net/ethernet/sfc/farch.c3
-rw-r--r--drivers/net/ethernet/socionext/netsec.c2
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c4
-rw-r--r--drivers/net/ethernet/ti/cpsw.c9
-rw-r--r--drivers/net/ethernet/ti/netcp_ethss.c24
-rw-r--r--drivers/net/ethernet/toshiba/ps3_gelic_wireless.c5
-rw-r--r--drivers/net/gtp.c6
-rw-r--r--drivers/net/hippi/rrunner.c2
-rw-r--r--drivers/net/phy/dp83640.c5
-rw-r--r--drivers/net/phy/phy_led_triggers.c6
-rw-r--r--drivers/net/ppp/bsd_comp.c4
-rw-r--r--drivers/net/ppp/pptp.c2
-rw-r--r--drivers/net/slip/slip.c2
-rw-r--r--drivers/net/team/team.c5
-rw-r--r--drivers/net/usb/asix_common.c8
-rw-r--r--drivers/net/usb/ax88179_178a.c4
-rw-r--r--drivers/net/usb/smsc95xx.c2
-rw-r--r--drivers/net/usb/usbnet.c4
-rw-r--r--drivers/net/virtio_net.c12
-rw-r--r--drivers/net/wan/fsl_ucc_hdlc.c6
-rw-r--r--drivers/net/wireless/ath/ath10k/htt_rx.c2
-rw-r--r--drivers/net/wireless/ath/ath10k/wmi-tlv.c2
-rw-r--r--drivers/net/wireless/ath/ath5k/debug.c2
-rw-r--r--drivers/net/wireless/ath/ath5k/phy.c3
-rw-r--r--drivers/net/wireless/ath/ath6kl/cfg80211.c2
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9003_paprd.c2
-rw-r--r--drivers/net/wireless/ath/ath9k/hw.c4
-rw-r--r--drivers/net/wireless/ath/carl9170/main.c7
-rw-r--r--drivers/net/wireless/broadcom/b43/phy_n.c2
-rw-r--r--drivers/net/wireless/broadcom/b43legacy/main.c4
-rw-r--r--drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c5
-rw-r--r--drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c2
-rw-r--r--drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c7
-rw-r--r--drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_lcn.c8
-rw-r--r--drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_n.c5
-rw-r--r--drivers/net/wireless/cisco/airo.c2
-rw-r--r--drivers/net/wireless/intel/ipw2x00/ipw2100.c11
-rw-r--r--drivers/net/wireless/intel/ipw2x00/ipw2200.c10
-rw-r--r--drivers/net/wireless/intel/iwlegacy/common.c13
-rw-r--r--drivers/net/wireless/intel/iwlwifi/mvm/scan.c2
-rw-r--r--drivers/net/wireless/intersil/hostap/hostap_info.c5
-rw-r--r--drivers/net/wireless/intersil/hostap/hostap_ioctl.c4
-rw-r--r--drivers/net/wireless/intersil/p54/eeprom.c12
-rw-r--r--drivers/net/wireless/intersil/prism54/oid_mgt.c2
-rw-r--r--drivers/net/wireless/marvell/mwifiex/11n_rxreorder.c4
-rw-r--r--drivers/net/wireless/marvell/mwifiex/cfg80211.c4
-rw-r--r--drivers/net/wireless/marvell/mwifiex/sdio.c9
-rw-r--r--drivers/net/wireless/mediatek/mt76/mac80211.c2
-rw-r--r--drivers/net/wireless/quantenna/qtnfmac/commands.c2
-rw-r--r--drivers/net/wireless/ralink/rt2x00/rt2x00debug.c2
-rw-r--r--drivers/net/wireless/realtek/rtlwifi/efuse.c4
-rw-r--r--drivers/net/wireless/realtek/rtlwifi/usb.c2
-rw-r--r--drivers/net/wireless/st/cw1200/queue.c10
-rw-r--r--drivers/net/wireless/st/cw1200/scan.c6
-rw-r--r--drivers/net/wireless/zydas/zd1211rw/zd_mac.c3
-rw-r--r--drivers/net/xen-netback/xenbus.c4
-rw-r--r--drivers/nfc/fdp/i2c.c4
-rw-r--r--drivers/ntb/hw/amd/ntb_hw_amd.c4
-rw-r--r--drivers/ntb/hw/intel/ntb_hw_gen1.c4
-rw-r--r--drivers/ntb/ntb_transport.c4
-rw-r--r--drivers/nvmem/rockchip-efuse.c6
-rw-r--r--drivers/nvmem/sunxi_sid.c2
-rw-r--r--drivers/of/platform.c2
-rw-r--r--drivers/of/unittest.c2
-rw-r--r--drivers/opp/ti-opp-supply.c4
-rw-r--r--drivers/oprofile/event_buffer.c2
-rw-r--r--drivers/pci/controller/dwc/pci-dra7xx.c4
-rw-r--r--drivers/pci/controller/dwc/pcie-designware-ep.c8
-rw-r--r--drivers/pci/controller/pcie-cadence-ep.c3
-rw-r--r--drivers/pci/controller/pcie-rockchip-ep.c2
-rw-r--r--drivers/pci/msi.c4
-rw-r--r--drivers/pci/pci-sysfs.c2
-rw-r--r--drivers/pcmcia/cistpl.c4
-rw-r--r--drivers/pcmcia/pd6729.c2
-rw-r--r--drivers/pinctrl/bcm/pinctrl-bcm2835.c4
-rw-r--r--drivers/pinctrl/berlin/berlin.c10
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx.c18
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx1-core.c23
-rw-r--r--drivers/pinctrl/freescale/pinctrl-mxs.c20
-rw-r--r--drivers/pinctrl/mvebu/pinctrl-armada-37xx.c21
-rw-r--r--drivers/pinctrl/mvebu/pinctrl-armada-xp.c4
-rw-r--r--drivers/pinctrl/mvebu/pinctrl-mvebu.c16
-rw-r--r--drivers/pinctrl/pinctrl-at91-pio4.c39
-rw-r--r--drivers/pinctrl/pinctrl-at91.c34
-rw-r--r--drivers/pinctrl/pinctrl-axp209.c7
-rw-r--r--drivers/pinctrl/pinctrl-digicolor.c5
-rw-r--r--drivers/pinctrl/pinctrl-ingenic.c4
-rw-r--r--drivers/pinctrl/pinctrl-lantiq.c3
-rw-r--r--drivers/pinctrl/pinctrl-lpc18xx.c5
-rw-r--r--drivers/pinctrl/pinctrl-ocelot.c3
-rw-r--r--drivers/pinctrl/pinctrl-rockchip.c24
-rw-r--r--drivers/pinctrl/pinctrl-single.c26
-rw-r--r--drivers/pinctrl/pinctrl-st.c31
-rw-r--r--drivers/pinctrl/pinctrl-xway.c4
-rw-r--r--drivers/pinctrl/samsung/pinctrl-exynos.c5
-rw-r--r--drivers/pinctrl/samsung/pinctrl-samsung.c17
-rw-r--r--drivers/pinctrl/sh-pfc/core.c6
-rw-r--r--drivers/pinctrl/sh-pfc/gpio.c7
-rw-r--r--drivers/pinctrl/sh-pfc/pinctrl.c8
-rw-r--r--drivers/pinctrl/sirf/pinctrl-sirf.c2
-rw-r--r--drivers/pinctrl/spear/pinctrl-plgpio.c4
-rw-r--r--drivers/pinctrl/spear/pinctrl-spear.c2
-rw-r--r--drivers/pinctrl/sprd/pinctrl-sprd.c19
-rw-r--r--drivers/pinctrl/sunxi/pinctrl-sunxi.c22
-rw-r--r--drivers/pinctrl/tegra/pinctrl-tegra.c6
-rw-r--r--drivers/pinctrl/ti/pinctrl-ti-iodelay.c6
-rw-r--r--drivers/pinctrl/vt8500/pinctrl-wmt.c2
-rw-r--r--drivers/pinctrl/zte/pinctrl-zx.c6
-rw-r--r--drivers/platform/mellanox/mlxreg-hotplug.c3
-rw-r--r--drivers/platform/x86/alienware-wmi.c6
-rw-r--r--drivers/platform/x86/intel_ips.c12
-rw-r--r--drivers/platform/x86/panasonic-laptop.c2
-rw-r--r--drivers/platform/x86/thinkpad_acpi.c2
-rw-r--r--drivers/power/supply/charger-manager.c29
-rw-r--r--drivers/power/supply/power_supply_core.c4
-rw-r--r--drivers/power/supply/wm97xx_battery.c2
-rw-r--r--drivers/power/supply/z2_battery.c2
-rw-r--r--drivers/powercap/powercap_sys.c9
-rw-r--r--drivers/pwm/pwm-lp3943.c2
-rw-r--r--drivers/rapidio/devices/rio_mport_cdev.c2
-rw-r--r--drivers/rapidio/rio-scan.c6
-rw-r--r--drivers/regulator/act8865-regulator.c7
-rw-r--r--drivers/regulator/as3711-regulator.c6
-rw-r--r--drivers/regulator/bcm590xx-regulator.c6
-rw-r--r--drivers/regulator/da9063-regulator.c4
-rw-r--r--drivers/regulator/gpio-regulator.c10
-rw-r--r--drivers/regulator/max1586.c6
-rw-r--r--drivers/regulator/max8660.c6
-rw-r--r--drivers/regulator/max8997-regulator.c5
-rw-r--r--drivers/regulator/max8998.c5
-rw-r--r--drivers/regulator/mc13xxx-regulator-core.c2
-rw-r--r--drivers/regulator/pbias-regulator.c5
-rw-r--r--drivers/regulator/rc5t583-regulator.c6
-rw-r--r--drivers/regulator/s2mps11.c6
-rw-r--r--drivers/regulator/s5m8767.c10
-rw-r--r--drivers/regulator/ti-abb-regulator.c4
-rw-r--r--drivers/regulator/tps65090-regulator.c10
-rw-r--r--drivers/regulator/tps65217-regulator.c5
-rw-r--r--drivers/regulator/tps65218-regulator.c5
-rw-r--r--drivers/regulator/tps65910-regulator.c18
-rw-r--r--drivers/regulator/tps80031-regulator.c4
-rw-r--r--drivers/reset/reset-ti-syscon.c3
-rw-r--r--drivers/s390/block/dasd_eer.c4
-rw-r--r--drivers/s390/block/dcssblk.c6
-rw-r--r--drivers/s390/char/keyboard.c2
-rw-r--r--drivers/s390/char/sclp_sd.c2
-rw-r--r--drivers/s390/char/tty3270.c3
-rw-r--r--drivers/s390/char/vmur.c2
-rw-r--r--drivers/s390/char/zcore.c2
-rw-r--r--drivers/s390/cio/qdio_setup.c2
-rw-r--r--drivers/s390/cio/qdio_thinint.c5
-rw-r--r--drivers/s390/crypto/pkey_api.c8
-rw-r--r--drivers/s390/net/ctcm_main.c2
-rw-r--r--drivers/s390/net/qeth_core_main.c27
-rw-r--r--drivers/scsi/BusLogic.c2
-rw-r--r--drivers/scsi/aacraid/aachba.c2
-rw-r--r--drivers/scsi/aacraid/linit.c4
-rw-r--r--drivers/scsi/aha1542.c3
-rw-r--r--drivers/scsi/aic7xxx/aic79xx_core.c3
-rw-r--r--drivers/scsi/aic7xxx/aic7xxx_core.c4
-rw-r--r--drivers/scsi/aic94xx/aic94xx_hwi.c12
-rw-r--r--drivers/scsi/aic94xx/aic94xx_init.c2
-rw-r--r--drivers/scsi/arm/queue.c2
-rw-r--r--drivers/scsi/be2iscsi/be_main.c54
-rw-r--r--drivers/scsi/bfa/bfad_attr.c2
-rw-r--r--drivers/scsi/bfa/bfad_bsg.c5
-rw-r--r--drivers/scsi/bnx2fc/bnx2fc_fcoe.c2
-rw-r--r--drivers/scsi/bnx2fc/bnx2fc_io.c8
-rw-r--r--drivers/scsi/csiostor/csio_wr.c4
-rw-r--r--drivers/scsi/esas2r/esas2r_init.c11
-rw-r--r--drivers/scsi/fcoe/fcoe_ctlr.c4
-rw-r--r--drivers/scsi/fnic/fnic_debugfs.c7
-rw-r--r--drivers/scsi/fnic/fnic_trace.c15
-rw-r--r--drivers/scsi/hpsa.c36
-rw-r--r--drivers/scsi/ipr.c16
-rw-r--r--drivers/scsi/isci/init.c8
-rw-r--r--drivers/scsi/libiscsi.c2
-rw-r--r--drivers/scsi/libsas/sas_expander.c2
-rw-r--r--drivers/scsi/lpfc/lpfc_init.c7
-rw-r--r--drivers/scsi/lpfc/lpfc_mem.c5
-rw-r--r--drivers/scsi/lpfc/lpfc_sli.c50
-rw-r--r--drivers/scsi/lpfc/lpfc_vport.c2
-rw-r--r--drivers/scsi/mac53c94.c5
-rw-r--r--drivers/scsi/megaraid.c3
-rw-r--r--drivers/scsi/megaraid/megaraid_mm.c10
-rw-r--r--drivers/scsi/megaraid/megaraid_sas_base.c8
-rw-r--r--drivers/scsi/megaraid/megaraid_sas_fusion.c12
-rw-r--r--drivers/scsi/osst.c8
-rw-r--r--drivers/scsi/pm8001/pm8001_ctl.c2
-rw-r--r--drivers/scsi/pmcraid.c5
-rw-r--r--drivers/scsi/qedi/qedi_main.c2
-rw-r--r--drivers/scsi/qla2xxx/qla_init.c10
-rw-r--r--drivers/scsi/qla2xxx/qla_isr.c5
-rw-r--r--drivers/scsi/qla2xxx/qla_nx.c2
-rw-r--r--drivers/scsi/qla2xxx/qla_os.c14
-rw-r--r--drivers/scsi/qla2xxx/qla_target.c10
-rw-r--r--drivers/scsi/qla2xxx/tcm_qla2xxx.c4
-rw-r--r--drivers/scsi/qla4xxx/ql4_nx.c2
-rw-r--r--drivers/scsi/scsi_debug.c5
-rw-r--r--drivers/scsi/sd_zbc.c2
-rw-r--r--drivers/scsi/ses.c2
-rw-r--r--drivers/scsi/sg.c2
-rw-r--r--drivers/scsi/smartpqi/smartpqi_init.c10
-rw-r--r--drivers/scsi/st.c5
-rw-r--r--drivers/scsi/ufs/ufshcd-pltfrm.c4
-rw-r--r--drivers/scsi/ufs/ufshcd.c4
-rw-r--r--drivers/scsi/virtio_scsi.c7
-rw-r--r--drivers/sh/clk/cpg.c2
-rw-r--r--drivers/sh/intc/core.c10
-rw-r--r--drivers/sh/maple/maple.c2
-rw-r--r--drivers/slimbus/qcom-ctrl.c2
-rw-r--r--drivers/soc/bcm/raspberrypi-power.c6
-rw-r--r--drivers/soc/fsl/qbman/qman.c5
-rw-r--r--drivers/soc/mediatek/mtk-scpsys.c8
-rw-r--r--drivers/soc/ti/knav_qmss_acc.c6
-rw-r--r--drivers/spi/spi-davinci.c7
-rw-r--r--drivers/spi/spi-ep93xx.c4
-rw-r--r--drivers/spi/spi-gpio.c5
-rw-r--r--drivers/spi/spi-imx.c5
-rw-r--r--drivers/spi/spi-oc-tiny.c4
-rw-r--r--drivers/spi/spi-pl022.c2
-rw-r--r--drivers/spi/spi.c2
-rw-r--r--drivers/staging/android/ion/ion_heap.c3
-rw-r--r--drivers/staging/greybus/audio_topology.c2
-rw-r--r--drivers/staging/greybus/camera.c5
-rw-r--r--drivers/staging/media/imx/imx-media-dev.c6
-rw-r--r--drivers/staging/media/zoran/zoran_driver.c5
-rw-r--r--drivers/staging/mt7621-pinctrl/pinctrl-rt2880.c26
-rw-r--r--drivers/staging/rtl8188eu/core/rtw_mlme.c2
-rw-r--r--drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c5
-rw-r--r--drivers/staging/rtl8192u/r8192U_core.c4
-rw-r--r--drivers/staging/rtl8723bs/core/rtw_mlme.c2
-rw-r--r--drivers/staging/rtlwifi/efuse.c4
-rw-r--r--drivers/staging/rts5208/ms.c2
-rw-r--r--drivers/staging/rts5208/rtsx_chip.c6
-rw-r--r--drivers/staging/unisys/visorhba/visorhba_main.c2
-rw-r--r--drivers/target/target_core_transport.c4
-rw-r--r--drivers/target/target_core_user.c5
-rw-r--r--drivers/thermal/int340x_thermal/acpi_thermal_rel.c4
-rw-r--r--drivers/thermal/int340x_thermal/int340x_thermal_zone.c7
-rw-r--r--drivers/thermal/of-thermal.c4
-rw-r--r--drivers/thermal/tegra/soctherm.c8
-rw-r--r--drivers/thermal/thermal-generic-adc.c5
-rw-r--r--drivers/thermal/x86_pkg_temp_thermal.c3
-rw-r--r--drivers/tty/ehv_bytechan.c2
-rw-r--r--drivers/tty/goldfish.c5
-rw-r--r--drivers/tty/hvc/hvc_iucv.c2
-rw-r--r--drivers/tty/hvc/hvcs.c3
-rw-r--r--drivers/tty/isicom.c2
-rw-r--r--drivers/tty/serial/atmel_serial.c5
-rw-r--r--drivers/tty/serial/pch_uart.c2
-rw-r--r--drivers/tty/serial/rp2.c2
-rw-r--r--drivers/tty/serial/serial_core.c2
-rw-r--r--drivers/tty/serial/sunsab.c5
-rw-r--r--drivers/tty/vt/consolemap.c7
-rw-r--r--drivers/tty/vt/keyboard.c4
-rw-r--r--drivers/tty/vt/selection.c3
-rw-r--r--drivers/uio/uio_pruss.c2
-rw-r--r--drivers/usb/core/devio.c7
-rw-r--r--drivers/usb/core/hub.c2
-rw-r--r--drivers/usb/core/message.c6
-rw-r--r--drivers/usb/dwc2/hcd.c11
-rw-r--r--drivers/usb/gadget/udc/atmel_usba_udc.c2
-rw-r--r--drivers/usb/gadget/udc/bdc/bdc_ep.c6
-rw-r--r--drivers/usb/gadget/udc/fsl_udc_core.c2
-rw-r--r--drivers/usb/gadget/udc/renesas_usb3.c3
-rw-r--r--drivers/usb/host/ehci-sched.c5
-rw-r--r--drivers/usb/host/fhci-tds.c2
-rw-r--r--drivers/usb/host/imx21-hcd.c4
-rw-r--r--drivers/usb/host/ohci-dbg.c2
-rw-r--r--drivers/usb/host/xhci-mem.c4
-rw-r--r--drivers/usb/misc/ldusb.c9
-rw-r--r--drivers/usb/misc/sisusbvga/sisusb_con.c2
-rw-r--r--drivers/usb/mon/mon_bin.c3
-rw-r--r--drivers/usb/renesas_usbhs/mod_gadget.c2
-rw-r--r--drivers/usb/renesas_usbhs/pipe.c3
-rw-r--r--drivers/usb/serial/iuu_phoenix.c4
-rw-r--r--drivers/usb/storage/alauda.c2
-rw-r--r--drivers/usb/storage/ene_ub6250.c16
-rw-r--r--drivers/usb/storage/sddr09.c4
-rw-r--r--drivers/usb/storage/sddr55.c6
-rw-r--r--drivers/usb/wusbcore/wa-rpipe.c3
-rw-r--r--drivers/uwb/est.c2
-rw-r--r--drivers/uwb/i1480/dfu/usb.c2
-rw-r--r--drivers/vhost/net.c8
-rw-r--r--drivers/vhost/scsi.c17
-rw-r--r--drivers/vhost/test.c2
-rw-r--r--drivers/vhost/vhost.c14
-rw-r--r--drivers/vhost/vringh.c2
-rw-r--r--drivers/video/backlight/adp8860_bl.c2
-rw-r--r--drivers/video/backlight/adp8870_bl.c2
-rw-r--r--drivers/video/backlight/lp855x_bl.c2
-rw-r--r--drivers/video/console/sticore.c2
-rw-r--r--drivers/video/fbdev/au1100fb.c2
-rw-r--r--drivers/video/fbdev/broadsheetfb.c2
-rw-r--r--drivers/video/fbdev/core/bitblit.c4
-rw-r--r--drivers/video/fbdev/core/fbcon.c3
-rw-r--r--drivers/video/fbdev/core/fbcon_ccw.c7
-rw-r--r--drivers/video/fbdev/core/fbcon_cw.c7
-rw-r--r--drivers/video/fbdev/core/fbcon_rotate.c2
-rw-r--r--drivers/video/fbdev/core/fbcon_ud.c4
-rw-r--r--drivers/video/fbdev/core/fbmem.c7
-rw-r--r--drivers/video/fbdev/core/fbmon.c9
-rw-r--r--drivers/video/fbdev/imxfb.c2
-rw-r--r--drivers/video/fbdev/mb862xx/mb862xxfb_accel.c2
-rw-r--r--drivers/video/fbdev/mmp/fb/mmpfb.c4
-rw-r--r--drivers/video/fbdev/mxsfb.c2
-rw-r--r--drivers/video/fbdev/nvidia/nvidia.c2
-rw-r--r--drivers/video/fbdev/omap2/omapfb/dss/manager.c4
-rw-r--r--drivers/video/fbdev/omap2/omapfb/dss/overlay.c4
-rw-r--r--drivers/video/fbdev/omap2/omapfb/vrfb.c4
-rw-r--r--drivers/video/fbdev/pvr2fb.c2
-rw-r--r--drivers/video/fbdev/riva/fbdev.c2
-rw-r--r--drivers/video/fbdev/uvesafb.c10
-rw-r--r--drivers/video/fbdev/via/viafbdev.c3
-rw-r--r--drivers/video/fbdev/w100fb.c3
-rw-r--r--drivers/video/fbdev/xen-fbfront.c2
-rw-r--r--drivers/video/of_display_timing.c5
-rw-r--r--drivers/virt/fsl_hypervisor.c2
-rw-r--r--drivers/virt/vboxguest/vboxguest_core.c7
-rw-r--r--drivers/virtio/virtio_pci_common.c7
-rw-r--r--drivers/virtio/virtio_ring.c2
-rw-r--r--drivers/xen/arm-device.c6
-rw-r--r--drivers/xen/evtchn.c2
-rw-r--r--drivers/xen/grant-table.c7
-rw-r--r--drivers/xen/xen-pciback/pciback_ops.c2
-rw-r--r--fs/9p/fid.c2
-rw-r--r--fs/adfs/super.c2
-rw-r--r--fs/afs/cmservice.c7
-rw-r--r--fs/binfmt_elf.c4
-rw-r--r--fs/binfmt_elf_fdpic.c3
-rw-r--r--fs/block_dev.c3
-rw-r--r--fs/btrfs/check-integrity.c4
-rw-r--r--fs/ceph/addr.c11
-rw-r--r--fs/ceph/mds_client.c5
-rw-r--r--fs/cifs/asn1.c2
-rw-r--r--fs/cifs/cifsacl.c4
-rw-r--r--fs/cifs/cifssmb.c2
-rw-r--r--fs/cifs/file.c2
-rw-r--r--fs/cifs/inode.c2
-rw-r--r--fs/cifs/misc.c4
-rw-r--r--fs/cifs/smb2pdu.c6
-rw-r--r--fs/cifs/transport.c8
-rw-r--r--fs/dlm/lockspace.c2
-rw-r--r--fs/exofs/inode.c4
-rw-r--r--fs/ext2/super.c4
-rw-r--r--fs/ext4/extents.c8
-rw-r--r--fs/ext4/resize.c10
-rw-r--r--fs/ext4/super.c6
-rw-r--r--fs/f2fs/checkpoint.c3
-rw-r--r--fs/f2fs/file.c6
-rw-r--r--fs/f2fs/node.c12
-rw-r--r--fs/f2fs/segment.c15
-rw-r--r--fs/f2fs/super.c20
-rw-r--r--fs/fat/namei_vfat.c2
-rw-r--r--fs/fuse/dev.c15
-rw-r--r--fs/gfs2/dir.c6
-rw-r--r--fs/gfs2/glock.c3
-rw-r--r--fs/gfs2/quota.c2
-rw-r--r--fs/gfs2/rgrp.c5
-rw-r--r--fs/gfs2/super.c2
-rw-r--r--fs/hpfs/dnode.c3
-rw-r--r--fs/hpfs/map.c2
-rw-r--r--fs/jbd2/revoke.c2
-rw-r--r--fs/jffs2/acl.c3
-rw-r--r--fs/jffs2/acl.h1
-rw-r--r--fs/jffs2/wbuf.c2
-rw-r--r--fs/jfs/jfs_dmap.c2
-rw-r--r--fs/jfs/jfs_dtree.c9
-rw-r--r--fs/jfs/jfs_unicode.c2
-rw-r--r--fs/mbcache.c5
-rw-r--r--fs/namei.c4
-rw-r--r--fs/nfs/flexfilelayout/flexfilelayout.c2
-rw-r--r--fs/nfs/flexfilelayout/flexfilelayoutdev.c3
-rw-r--r--fs/nfsd/export.c5
-rw-r--r--fs/nfsd/nfs4recover.c5
-rw-r--r--fs/nfsd/nfs4state.c20
-rw-r--r--fs/nfsd/nfscache.c3
-rw-r--r--fs/ntfs/compress.c2
-rw-r--r--fs/ocfs2/cluster/tcp.c2
-rw-r--r--fs/ocfs2/dlm/dlmdomain.c2
-rw-r--r--fs/ocfs2/journal.c2
-rw-r--r--fs/ocfs2/sysfile.c9
-rw-r--r--fs/overlayfs/namei.c2
-rw-r--r--fs/proc/base.c3
-rw-r--r--fs/proc/proc_sysctl.c2
-rw-r--r--fs/proc/task_mmu.c2
-rw-r--r--fs/read_write.c4
-rw-r--r--fs/reiserfs/bitmap.c2
-rw-r--r--fs/reiserfs/inode.c3
-rw-r--r--fs/reiserfs/journal.c13
-rw-r--r--fs/reiserfs/resize.c3
-rw-r--r--fs/select.c2
-rw-r--r--fs/splice.c7
-rw-r--r--fs/ubifs/journal.c5
-rw-r--r--fs/ubifs/lpt.c25
-rw-r--r--fs/ubifs/super.c3
-rw-r--r--fs/ubifs/tnc.c5
-rw-r--r--fs/ubifs/tnc_commit.c5
-rw-r--r--fs/udf/super.c7
-rw-r--r--fs/ufs/super.c4
-rw-r--r--include/linux/mm.h5
-rw-r--r--include/rdma/ib_verbs.h5
-rw-r--r--ipc/sem.c2
-rw-r--r--kernel/bpf/btf.c8
-rw-r--r--kernel/bpf/lpm_trie.c5
-rw-r--r--kernel/bpf/verifier.c10
-rw-r--r--kernel/cgroup/cgroup-v1.c4
-rw-r--r--kernel/cgroup/cpuset.c5
-rw-r--r--kernel/debug/kdb/kdb_main.c13
-rw-r--r--kernel/events/ring_buffer.c3
-rw-r--r--kernel/events/uprobes.c3
-rw-r--r--kernel/fail_function.c2
-rw-r--r--kernel/kexec_file.c2
-rw-r--r--kernel/locking/locktorture.c14
-rw-r--r--kernel/power/swap.c6
-rw-r--r--kernel/rcu/rcutorture.c5
-rw-r--r--kernel/relay.c3
-rw-r--r--kernel/sched/fair.c4
-rw-r--r--kernel/sched/rt.c4
-rw-r--r--kernel/sched/topology.c2
-rw-r--r--kernel/sysctl.c3
-rw-r--r--kernel/trace/ftrace.c28
-rw-r--r--kernel/trace/trace.c12
-rw-r--r--kernel/trace/trace_events_filter.c6
-rw-r--r--kernel/trace/tracing_map.c2
-rw-r--r--kernel/user_namespace.c5
-rw-r--r--kernel/workqueue.c2
-rw-r--r--lib/argv_split.c2
-rw-r--r--lib/interval_tree_test.c5
-rw-r--r--lib/kfifo.c2
-rw-r--r--lib/lru_cache.c2
-rw-r--r--lib/mpi/mpiutil.c4
-rw-r--r--lib/rbtree_test.c2
-rw-r--r--lib/reed_solomon/reed_solomon.c6
-rw-r--r--lib/sbitmap.c2
-rw-r--r--lib/scatterlist.c3
-rw-r--r--lib/test_firmware.c10
-rw-r--r--lib/test_kmod.c5
-rw-r--r--lib/test_overflow.c2
-rw-r--r--lib/test_rhashtable.c13
-rw-r--r--mm/gup_benchmark.c2
-rw-r--r--mm/huge_memory.c4
-rw-r--r--mm/hugetlb.c3
-rw-r--r--mm/percpu-stats.c2
-rw-r--r--mm/slab.c3
-rw-r--r--mm/slub.c19
-rw-r--r--mm/swap_slots.c4
-rw-r--r--mm/swap_state.c2
-rw-r--r--mm/swapfile.c5
-rw-r--r--net/9p/protocol.c11
-rw-r--r--net/9p/trans_virtio.c3
-rw-r--r--net/atm/mpc.c2
-rw-r--r--net/bluetooth/hci_core.c2
-rw-r--r--net/bluetooth/l2cap_core.c2
-rw-r--r--net/bridge/br_multicast.c2
-rw-r--r--net/bridge/netfilter/ebtables.c11
-rw-r--r--net/can/bcm.c13
-rw-r--r--net/ceph/osdmap.c5
-rw-r--r--net/ceph/pagevec.c4
-rw-r--r--net/core/dev.c2
-rw-r--r--net/core/ethtool.c12
-rw-r--r--net/core/pktgen.c3
-rw-r--r--net/dcb/dcbnl.c3
-rw-r--r--net/dccp/ccids/ccid2.c3
-rw-r--r--net/ieee802154/nl-phy.c2
-rw-r--r--net/ipv4/fib_frontend.c2
-rw-r--r--net/ipv4/route.c5
-rw-r--r--net/ipv6/icmp.c2
-rw-r--r--net/ipv6/ila/ila_xlat.c3
-rw-r--r--net/mac80211/chan.c2
-rw-r--r--net/mac80211/main.c2
-rw-r--r--net/mac80211/rc80211_minstrel.c4
-rw-r--r--net/mac80211/rc80211_minstrel_ht.c4
-rw-r--r--net/mac80211/scan.c2
-rw-r--r--net/mac80211/util.c5
-rw-r--r--net/netfilter/ipvs/ip_vs_conn.c3
-rw-r--r--net/netfilter/nf_conntrack_proto.c3
-rw-r--r--net/netfilter/nf_nat_core.c5
-rw-r--r--net/netfilter/nf_tables_api.c6
-rw-r--r--net/netfilter/nfnetlink_cthelper.c5
-rw-r--r--net/netfilter/x_tables.c2
-rw-r--r--net/netlink/genetlink.c10
-rw-r--r--net/netrom/af_netrom.c2
-rw-r--r--net/openvswitch/datapath.c5
-rw-r--r--net/openvswitch/vport.c2
-rw-r--r--net/packet/af_packet.c2
-rw-r--r--net/rds/ib.c3
-rw-r--r--net/rds/ib_cm.c6
-rw-r--r--net/rds/info.c2
-rw-r--r--net/rose/af_rose.c3
-rw-r--r--net/rxrpc/rxkad.c2
-rw-r--r--net/sched/sch_fq_codel.c7
-rw-r--r--net/sched/sch_hhf.c9
-rw-r--r--net/sctp/auth.c5
-rw-r--r--net/sctp/protocol.c2
-rw-r--r--net/smc/smc_wr.c6
-rw-r--r--net/sunrpc/auth_gss/auth_gss.c3
-rw-r--r--net/sunrpc/auth_gss/gss_rpc_upcall.c2
-rw-r--r--net/sunrpc/cache.c2
-rw-r--r--net/tipc/netlink_compat.c5
-rw-r--r--net/wireless/nl80211.c4
-rw-r--r--security/apparmor/policy_unpack.c2
-rw-r--r--security/keys/trusted.c2
-rw-r--r--security/selinux/ss/services.c2
-rw-r--r--sound/core/pcm_compat.c2
-rw-r--r--sound/core/pcm_native.c4
-rw-r--r--sound/core/seq/seq_memory.c3
-rw-r--r--sound/core/seq/seq_midi_emul.c2
-rw-r--r--sound/firewire/fireface/ff-protocol-ff400.c2
-rw-r--r--sound/firewire/packets-buffer.c2
-rw-r--r--sound/oss/dmasound/dmasound_core.c2
-rw-r--r--sound/pci/cs46xx/cs46xx_lib.c7
-rw-r--r--sound/pci/cs46xx/dsp_spos.c9
-rw-r--r--sound/pci/ctxfi/ctatc.c18
-rw-r--r--sound/pci/ctxfi/ctdaio.c3
-rw-r--r--sound/pci/ctxfi/ctmixer.c5
-rw-r--r--sound/pci/ctxfi/ctsrc.c2
-rw-r--r--sound/pci/emu10k1/emu10k1_main.c9
-rw-r--r--sound/pci/emu10k1/emufx.c8
-rw-r--r--sound/pci/emu10k1/p16v.c2
-rw-r--r--sound/pci/hda/hda_codec.c4
-rw-r--r--sound/pci/hda/hda_proc.c5
-rw-r--r--sound/pci/hda/patch_ca0132.c4
-rw-r--r--sound/pci/maestro3.c5
-rw-r--r--sound/pci/trident/trident_main.c4
-rw-r--r--sound/pci/via82xx.c4
-rw-r--r--sound/pci/via82xx_modem.c4
-rw-r--r--sound/pci/ymfpci/ymfpci_main.c4
-rw-r--r--sound/soc/au1x/dbdma2.c4
-rw-r--r--sound/soc/codecs/hdmi-codec.c2
-rw-r--r--sound/soc/codecs/rt5645.c5
-rw-r--r--sound/soc/codecs/wm8904.c5
-rw-r--r--sound/soc/codecs/wm8958-dsp2.c20
-rw-r--r--sound/soc/codecs/wm8994.c4
-rw-r--r--sound/soc/codecs/wm_adsp.c2
-rw-r--r--sound/soc/davinci/davinci-mcasp.c14
-rw-r--r--sound/soc/generic/audio-graph-card.c4
-rw-r--r--sound/soc/generic/audio-graph-scu-card.c4
-rw-r--r--sound/soc/generic/simple-card.c8
-rw-r--r--sound/soc/generic/simple-scu-card.c4
-rw-r--r--sound/soc/img/img-i2s-in.c4
-rw-r--r--sound/soc/img/img-i2s-out.c4
-rw-r--r--sound/soc/intel/common/sst-ipc.c4
-rw-r--r--sound/soc/intel/skylake/skl-topology.c20
-rw-r--r--sound/soc/mediatek/mt2701/mt2701-afe-pcm.c3
-rw-r--r--sound/soc/pxa/mmp-sspa.c4
-rw-r--r--sound/soc/rockchip/rk3399_gru_sound.c2
-rw-r--r--sound/soc/sh/rcar/cmd.c2
-rw-r--r--sound/soc/sh/rcar/core.c4
-rw-r--r--sound/soc/sh/rcar/ctu.c2
-rw-r--r--sound/soc/sh/rcar/dvc.c2
-rw-r--r--sound/soc/sh/rcar/mix.c2
-rw-r--r--sound/soc/sh/rcar/src.c2
-rw-r--r--sound/soc/sh/rcar/ssi.c2
-rw-r--r--sound/soc/sh/rcar/ssiu.c2
-rw-r--r--sound/soc/soc-core.c10
-rw-r--r--sound/soc/soc-dapm.c2
-rw-r--r--sound/soc/soc-topology.c2
-rw-r--r--sound/soc/uniphier/aio-cpu.c10
-rw-r--r--sound/usb/6fire/pcm.c10
-rw-r--r--sound/usb/caiaq/audio.c7
-rw-r--r--sound/usb/format.c5
-rw-r--r--sound/usb/line6/capture.c4
-rw-r--r--sound/usb/line6/pcm.c6
-rw-r--r--sound/usb/line6/playback.c4
-rw-r--r--sound/usb/mixer.c2
-rw-r--r--sound/usb/pcm.c2
-rw-r--r--sound/usb/usx2y/usbusx2y.c4
-rw-r--r--sound/usb/usx2y/usbusx2yaudio.c7
-rw-r--r--virt/kvm/arm/vgic/vgic-v4.c2
-rw-r--r--virt/kvm/kvm_main.c3
1201 files changed, 3586 insertions, 2796 deletions
diff --git a/arch/arm/kernel/sys_oabi-compat.c b/arch/arm/kernel/sys_oabi-compat.c
index b9786f491873..1df21a61e379 100644
--- a/arch/arm/kernel/sys_oabi-compat.c
+++ b/arch/arm/kernel/sys_oabi-compat.c
@@ -286,7 +286,7 @@ asmlinkage long sys_oabi_epoll_wait(int epfd,
286 return -EINVAL; 286 return -EINVAL;
287 if (!access_ok(VERIFY_WRITE, events, sizeof(*events) * maxevents)) 287 if (!access_ok(VERIFY_WRITE, events, sizeof(*events) * maxevents))
288 return -EFAULT; 288 return -EFAULT;
289 kbuf = kmalloc(sizeof(*kbuf) * maxevents, GFP_KERNEL); 289 kbuf = kmalloc_array(maxevents, sizeof(*kbuf), GFP_KERNEL);
290 if (!kbuf) 290 if (!kbuf)
291 return -ENOMEM; 291 return -ENOMEM;
292 fs = get_fs(); 292 fs = get_fs();
@@ -324,7 +324,7 @@ asmlinkage long sys_oabi_semtimedop(int semid,
324 return -EINVAL; 324 return -EINVAL;
325 if (!access_ok(VERIFY_READ, tsops, sizeof(*tsops) * nsops)) 325 if (!access_ok(VERIFY_READ, tsops, sizeof(*tsops) * nsops))
326 return -EFAULT; 326 return -EFAULT;
327 sops = kmalloc(sizeof(*sops) * nsops, GFP_KERNEL); 327 sops = kmalloc_array(nsops, sizeof(*sops), GFP_KERNEL);
328 if (!sops) 328 if (!sops)
329 return -ENOMEM; 329 return -ENOMEM;
330 err = 0; 330 err = 0;
diff --git a/arch/arm/mach-footbridge/dc21285.c b/arch/arm/mach-footbridge/dc21285.c
index e7b350f18f5f..16d71bac0061 100644
--- a/arch/arm/mach-footbridge/dc21285.c
+++ b/arch/arm/mach-footbridge/dc21285.c
@@ -252,7 +252,7 @@ int __init dc21285_setup(int nr, struct pci_sys_data *sys)
252 if (nr || !footbridge_cfn_mode()) 252 if (nr || !footbridge_cfn_mode())
253 return 0; 253 return 0;
254 254
255 res = kzalloc(sizeof(struct resource) * 2, GFP_KERNEL); 255 res = kcalloc(2, sizeof(struct resource), GFP_KERNEL);
256 if (!res) { 256 if (!res) {
257 printk("out of memory for root bus resources"); 257 printk("out of memory for root bus resources");
258 return 0; 258 return 0;
diff --git a/arch/arm/mach-ixp4xx/common-pci.c b/arch/arm/mach-ixp4xx/common-pci.c
index bcf3df59f71b..6835b17113e5 100644
--- a/arch/arm/mach-ixp4xx/common-pci.c
+++ b/arch/arm/mach-ixp4xx/common-pci.c
@@ -421,7 +421,7 @@ int ixp4xx_setup(int nr, struct pci_sys_data *sys)
421 if (nr >= 1) 421 if (nr >= 1)
422 return 0; 422 return 0;
423 423
424 res = kzalloc(sizeof(*res) * 2, GFP_KERNEL); 424 res = kcalloc(2, sizeof(*res), GFP_KERNEL);
425 if (res == NULL) { 425 if (res == NULL) {
426 /* 426 /*
427 * If we're out of memory this early, something is wrong, 427 * If we're out of memory this early, something is wrong,
diff --git a/arch/arm/mach-omap1/mcbsp.c b/arch/arm/mach-omap1/mcbsp.c
index 8ed67f8d1762..27e22e702f96 100644
--- a/arch/arm/mach-omap1/mcbsp.c
+++ b/arch/arm/mach-omap1/mcbsp.c
@@ -389,7 +389,7 @@ static void omap_mcbsp_register_board_cfg(struct resource *res, int res_count,
389{ 389{
390 int i; 390 int i;
391 391
392 omap_mcbsp_devices = kzalloc(size * sizeof(struct platform_device *), 392 omap_mcbsp_devices = kcalloc(size, sizeof(struct platform_device *),
393 GFP_KERNEL); 393 GFP_KERNEL);
394 if (!omap_mcbsp_devices) { 394 if (!omap_mcbsp_devices) {
395 printk(KERN_ERR "Could not register McBSP devices\n"); 395 printk(KERN_ERR "Could not register McBSP devices\n");
diff --git a/arch/arm/mach-omap2/hsmmc.c b/arch/arm/mach-omap2/hsmmc.c
index 0103548b0b15..af545193f673 100644
--- a/arch/arm/mach-omap2/hsmmc.c
+++ b/arch/arm/mach-omap2/hsmmc.c
@@ -34,7 +34,7 @@ static int __init omap_hsmmc_pdata_init(struct omap2_hsmmc_info *c,
34{ 34{
35 char *hc_name; 35 char *hc_name;
36 36
37 hc_name = kzalloc(sizeof(char) * (HSMMC_NAME_LEN + 1), GFP_KERNEL); 37 hc_name = kzalloc(HSMMC_NAME_LEN + 1, GFP_KERNEL);
38 if (!hc_name) { 38 if (!hc_name) {
39 kfree(hc_name); 39 kfree(hc_name);
40 return -ENOMEM; 40 return -ENOMEM;
diff --git a/arch/arm/mach-omap2/omap_device.c b/arch/arm/mach-omap2/omap_device.c
index ac219b9e6a4c..41c7b905980a 100644
--- a/arch/arm/mach-omap2/omap_device.c
+++ b/arch/arm/mach-omap2/omap_device.c
@@ -162,7 +162,7 @@ static int omap_device_build_from_dt(struct platform_device *pdev)
162 !omap_hwmod_parse_module_range(NULL, node, &res)) 162 !omap_hwmod_parse_module_range(NULL, node, &res))
163 return -ENODEV; 163 return -ENODEV;
164 164
165 hwmods = kzalloc(sizeof(struct omap_hwmod *) * oh_cnt, GFP_KERNEL); 165 hwmods = kcalloc(oh_cnt, sizeof(struct omap_hwmod *), GFP_KERNEL);
166 if (!hwmods) { 166 if (!hwmods) {
167 ret = -ENOMEM; 167 ret = -ENOMEM;
168 goto odbfd_exit; 168 goto odbfd_exit;
@@ -413,7 +413,7 @@ omap_device_copy_resources(struct omap_hwmod *oh,
413 goto error; 413 goto error;
414 } 414 }
415 415
416 res = kzalloc(sizeof(*res) * 2, GFP_KERNEL); 416 res = kcalloc(2, sizeof(*res), GFP_KERNEL);
417 if (!res) 417 if (!res)
418 return -ENOMEM; 418 return -ENOMEM;
419 419
diff --git a/arch/arm/mach-omap2/prm_common.c b/arch/arm/mach-omap2/prm_common.c
index 021b5a8b9c0a..058a37e6d11c 100644
--- a/arch/arm/mach-omap2/prm_common.c
+++ b/arch/arm/mach-omap2/prm_common.c
@@ -285,10 +285,11 @@ int omap_prcm_register_chain_handler(struct omap_prcm_irq_setup *irq_setup)
285 285
286 prcm_irq_setup = irq_setup; 286 prcm_irq_setup = irq_setup;
287 287
288 prcm_irq_chips = kzalloc(sizeof(void *) * nr_regs, GFP_KERNEL); 288 prcm_irq_chips = kcalloc(nr_regs, sizeof(void *), GFP_KERNEL);
289 prcm_irq_setup->saved_mask = kzalloc(sizeof(u32) * nr_regs, GFP_KERNEL); 289 prcm_irq_setup->saved_mask = kcalloc(nr_regs, sizeof(u32),
290 prcm_irq_setup->priority_mask = kzalloc(sizeof(u32) * nr_regs, 290 GFP_KERNEL);
291 GFP_KERNEL); 291 prcm_irq_setup->priority_mask = kcalloc(nr_regs, sizeof(u32),
292 GFP_KERNEL);
292 293
293 if (!prcm_irq_chips || !prcm_irq_setup->saved_mask || 294 if (!prcm_irq_chips || !prcm_irq_setup->saved_mask ||
294 !prcm_irq_setup->priority_mask) 295 !prcm_irq_setup->priority_mask)
diff --git a/arch/arm/mach-vexpress/spc.c b/arch/arm/mach-vexpress/spc.c
index 21c064267af5..0f5381d13494 100644
--- a/arch/arm/mach-vexpress/spc.c
+++ b/arch/arm/mach-vexpress/spc.c
@@ -403,7 +403,7 @@ static int ve_spc_populate_opps(uint32_t cluster)
403 uint32_t data = 0, off, ret, idx; 403 uint32_t data = 0, off, ret, idx;
404 struct ve_spc_opp *opps; 404 struct ve_spc_opp *opps;
405 405
406 opps = kzalloc(sizeof(*opps) * MAX_OPPS, GFP_KERNEL); 406 opps = kcalloc(MAX_OPPS, sizeof(*opps), GFP_KERNEL);
407 if (!opps) 407 if (!opps)
408 return -ENOMEM; 408 return -ENOMEM;
409 409
diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c
index af27f1c22d93..be0fa7e39c26 100644
--- a/arch/arm/mm/dma-mapping.c
+++ b/arch/arm/mm/dma-mapping.c
@@ -2162,8 +2162,8 @@ arm_iommu_create_mapping(struct bus_type *bus, dma_addr_t base, u64 size)
2162 goto err; 2162 goto err;
2163 2163
2164 mapping->bitmap_size = bitmap_size; 2164 mapping->bitmap_size = bitmap_size;
2165 mapping->bitmaps = kzalloc(extensions * sizeof(unsigned long *), 2165 mapping->bitmaps = kcalloc(extensions, sizeof(unsigned long *),
2166 GFP_KERNEL); 2166 GFP_KERNEL);
2167 if (!mapping->bitmaps) 2167 if (!mapping->bitmaps)
2168 goto err2; 2168 goto err2;
2169 2169
diff --git a/arch/arm/mm/pgd.c b/arch/arm/mm/pgd.c
index 61e281cb29fb..a1606d950251 100644
--- a/arch/arm/mm/pgd.c
+++ b/arch/arm/mm/pgd.c
@@ -20,7 +20,7 @@
20#include "mm.h" 20#include "mm.h"
21 21
22#ifdef CONFIG_ARM_LPAE 22#ifdef CONFIG_ARM_LPAE
23#define __pgd_alloc() kmalloc(PTRS_PER_PGD * sizeof(pgd_t), GFP_KERNEL) 23#define __pgd_alloc() kmalloc_array(PTRS_PER_PGD, sizeof(pgd_t), GFP_KERNEL)
24#define __pgd_free(pgd) kfree(pgd) 24#define __pgd_free(pgd) kfree(pgd)
25#else 25#else
26#define __pgd_alloc() (pgd_t *)__get_free_pages(GFP_KERNEL, 2) 26#define __pgd_alloc() (pgd_t *)__get_free_pages(GFP_KERNEL, 2)
diff --git a/arch/arm/probes/kprobes/test-core.c b/arch/arm/probes/kprobes/test-core.c
index 9ed0129bed3c..14db14152909 100644
--- a/arch/arm/probes/kprobes/test-core.c
+++ b/arch/arm/probes/kprobes/test-core.c
@@ -766,8 +766,9 @@ static int coverage_start_fn(const struct decode_header *h, void *args)
766 766
767static int coverage_start(const union decode_item *table) 767static int coverage_start(const union decode_item *table)
768{ 768{
769 coverage.base = kmalloc(MAX_COVERAGE_ENTRIES * 769 coverage.base = kmalloc_array(MAX_COVERAGE_ENTRIES,
770 sizeof(struct coverage_entry), GFP_KERNEL); 770 sizeof(struct coverage_entry),
771 GFP_KERNEL);
771 coverage.num_entries = 0; 772 coverage.num_entries = 0;
772 coverage.nesting = 0; 773 coverage.nesting = 0;
773 return table_iter(table, coverage_start_fn, &coverage); 774 return table_iter(table, coverage_start_fn, &coverage);
diff --git a/arch/arm64/kernel/armv8_deprecated.c b/arch/arm64/kernel/armv8_deprecated.c
index 97d45d5151d4..d4707abb2f16 100644
--- a/arch/arm64/kernel/armv8_deprecated.c
+++ b/arch/arm64/kernel/armv8_deprecated.c
@@ -234,8 +234,8 @@ static void __init register_insn_emulation_sysctl(void)
234 struct insn_emulation *insn; 234 struct insn_emulation *insn;
235 struct ctl_table *insns_sysctl, *sysctl; 235 struct ctl_table *insns_sysctl, *sysctl;
236 236
237 insns_sysctl = kzalloc(sizeof(*sysctl) * (nr_insn_emulated + 1), 237 insns_sysctl = kcalloc(nr_insn_emulated + 1, sizeof(*sysctl),
238 GFP_KERNEL); 238 GFP_KERNEL);
239 239
240 raw_spin_lock_irqsave(&insn_emulation_lock, flags); 240 raw_spin_lock_irqsave(&insn_emulation_lock, flags);
241 list_for_each_entry(insn, &insn_emulation, node) { 241 list_for_each_entry(insn, &insn_emulation, node) {
diff --git a/arch/arm64/mm/context.c b/arch/arm64/mm/context.c
index 301417ae2ba8..c127f94da8e2 100644
--- a/arch/arm64/mm/context.c
+++ b/arch/arm64/mm/context.c
@@ -263,7 +263,7 @@ static int asids_init(void)
263 */ 263 */
264 WARN_ON(NUM_USER_ASIDS - 1 <= num_possible_cpus()); 264 WARN_ON(NUM_USER_ASIDS - 1 <= num_possible_cpus());
265 atomic64_set(&asid_generation, ASID_FIRST_VERSION); 265 atomic64_set(&asid_generation, ASID_FIRST_VERSION);
266 asid_map = kzalloc(BITS_TO_LONGS(NUM_USER_ASIDS) * sizeof(*asid_map), 266 asid_map = kcalloc(BITS_TO_LONGS(NUM_USER_ASIDS), sizeof(*asid_map),
267 GFP_KERNEL); 267 GFP_KERNEL);
268 if (!asid_map) 268 if (!asid_map)
269 panic("Failed to allocate bitmap for %lu ASIDs\n", 269 panic("Failed to allocate bitmap for %lu ASIDs\n",
diff --git a/arch/ia64/kernel/mca_drv.c b/arch/ia64/kernel/mca_drv.c
index 94f8bf777afa..dfe40cbdf3b3 100644
--- a/arch/ia64/kernel/mca_drv.c
+++ b/arch/ia64/kernel/mca_drv.c
@@ -350,7 +350,8 @@ init_record_index_pools(void)
350 /* - 3 - */ 350 /* - 3 - */
351 slidx_pool.max_idx = (rec_max_size/sect_min_size) * 2 + 1; 351 slidx_pool.max_idx = (rec_max_size/sect_min_size) * 2 + 1;
352 slidx_pool.buffer = 352 slidx_pool.buffer =
353 kmalloc(slidx_pool.max_idx * sizeof(slidx_list_t), GFP_KERNEL); 353 kmalloc_array(slidx_pool.max_idx, sizeof(slidx_list_t),
354 GFP_KERNEL);
354 355
355 return slidx_pool.buffer ? 0 : -ENOMEM; 356 return slidx_pool.buffer ? 0 : -ENOMEM;
356} 357}
diff --git a/arch/ia64/kernel/topology.c b/arch/ia64/kernel/topology.c
index d76529cbff20..9b820f7a6a98 100644
--- a/arch/ia64/kernel/topology.c
+++ b/arch/ia64/kernel/topology.c
@@ -85,7 +85,7 @@ static int __init topology_init(void)
85 } 85 }
86#endif 86#endif
87 87
88 sysfs_cpus = kzalloc(sizeof(struct ia64_cpu) * NR_CPUS, GFP_KERNEL); 88 sysfs_cpus = kcalloc(NR_CPUS, sizeof(struct ia64_cpu), GFP_KERNEL);
89 if (!sysfs_cpus) 89 if (!sysfs_cpus)
90 panic("kzalloc in topology_init failed - NR_CPUS too big?"); 90 panic("kzalloc in topology_init failed - NR_CPUS too big?");
91 91
@@ -319,8 +319,8 @@ static int cpu_cache_sysfs_init(unsigned int cpu)
319 return -1; 319 return -1;
320 } 320 }
321 321
322 this_cache=kzalloc(sizeof(struct cache_info)*unique_caches, 322 this_cache=kcalloc(unique_caches, sizeof(struct cache_info),
323 GFP_KERNEL); 323 GFP_KERNEL);
324 if (this_cache == NULL) 324 if (this_cache == NULL)
325 return -ENOMEM; 325 return -ENOMEM;
326 326
diff --git a/arch/ia64/mm/tlb.c b/arch/ia64/mm/tlb.c
index 46ecc5d948aa..acf10eb9da15 100644
--- a/arch/ia64/mm/tlb.c
+++ b/arch/ia64/mm/tlb.c
@@ -430,8 +430,9 @@ int ia64_itr_entry(u64 target_mask, u64 va, u64 pte, u64 log_size)
430 int cpu = smp_processor_id(); 430 int cpu = smp_processor_id();
431 431
432 if (!ia64_idtrs[cpu]) { 432 if (!ia64_idtrs[cpu]) {
433 ia64_idtrs[cpu] = kmalloc(2 * IA64_TR_ALLOC_MAX * 433 ia64_idtrs[cpu] = kmalloc_array(2 * IA64_TR_ALLOC_MAX,
434 sizeof (struct ia64_tr_entry), GFP_KERNEL); 434 sizeof(struct ia64_tr_entry),
435 GFP_KERNEL);
435 if (!ia64_idtrs[cpu]) 436 if (!ia64_idtrs[cpu])
436 return -ENOMEM; 437 return -ENOMEM;
437 } 438 }
diff --git a/arch/ia64/sn/kernel/io_common.c b/arch/ia64/sn/kernel/io_common.c
index 8479e9a7ce16..102aabad6d20 100644
--- a/arch/ia64/sn/kernel/io_common.c
+++ b/arch/ia64/sn/kernel/io_common.c
@@ -132,7 +132,7 @@ static s64 sn_device_fixup_war(u64 nasid, u64 widget, int device,
132 printk_once(KERN_WARNING 132 printk_once(KERN_WARNING
133 "PROM version < 4.50 -- implementing old PROM flush WAR\n"); 133 "PROM version < 4.50 -- implementing old PROM flush WAR\n");
134 134
135 war_list = kzalloc(DEV_PER_WIDGET * sizeof(*war_list), GFP_KERNEL); 135 war_list = kcalloc(DEV_PER_WIDGET, sizeof(*war_list), GFP_KERNEL);
136 BUG_ON(!war_list); 136 BUG_ON(!war_list);
137 137
138 SAL_CALL_NOLOCK(isrv, SN_SAL_IOIF_GET_WIDGET_DMAFLUSH_LIST, 138 SAL_CALL_NOLOCK(isrv, SN_SAL_IOIF_GET_WIDGET_DMAFLUSH_LIST,
diff --git a/arch/ia64/sn/kernel/irq.c b/arch/ia64/sn/kernel/irq.c
index 85d095154902..d9b576df4f82 100644
--- a/arch/ia64/sn/kernel/irq.c
+++ b/arch/ia64/sn/kernel/irq.c
@@ -474,7 +474,8 @@ void __init sn_irq_lh_init(void)
474{ 474{
475 int i; 475 int i;
476 476
477 sn_irq_lh = kmalloc(sizeof(struct list_head *) * NR_IRQS, GFP_KERNEL); 477 sn_irq_lh = kmalloc_array(NR_IRQS, sizeof(struct list_head *),
478 GFP_KERNEL);
478 if (!sn_irq_lh) 479 if (!sn_irq_lh)
479 panic("SN PCI INIT: Failed to allocate memory for PCI init\n"); 480 panic("SN PCI INIT: Failed to allocate memory for PCI init\n");
480 481
diff --git a/arch/ia64/sn/pci/pcibr/pcibr_provider.c b/arch/ia64/sn/pci/pcibr/pcibr_provider.c
index 8dbbef4a4f47..7195df1da121 100644
--- a/arch/ia64/sn/pci/pcibr/pcibr_provider.c
+++ b/arch/ia64/sn/pci/pcibr/pcibr_provider.c
@@ -184,7 +184,7 @@ pcibr_bus_fixup(struct pcibus_bussoft *prom_bussoft, struct pci_controller *cont
184 /* Setup the PMU ATE map */ 184 /* Setup the PMU ATE map */
185 soft->pbi_int_ate_resource.lowest_free_index = 0; 185 soft->pbi_int_ate_resource.lowest_free_index = 0;
186 soft->pbi_int_ate_resource.ate = 186 soft->pbi_int_ate_resource.ate =
187 kzalloc(soft->pbi_int_ate_size * sizeof(u64), GFP_KERNEL); 187 kcalloc(soft->pbi_int_ate_size, sizeof(u64), GFP_KERNEL);
188 188
189 if (!soft->pbi_int_ate_resource.ate) { 189 if (!soft->pbi_int_ate_resource.ate) {
190 kfree(soft); 190 kfree(soft);
diff --git a/arch/mips/alchemy/common/clock.c b/arch/mips/alchemy/common/clock.c
index 6b6f6851df92..d129475fd40d 100644
--- a/arch/mips/alchemy/common/clock.c
+++ b/arch/mips/alchemy/common/clock.c
@@ -985,7 +985,7 @@ static int __init alchemy_clk_setup_imux(int ctype)
985 return -ENODEV; 985 return -ENODEV;
986 } 986 }
987 987
988 a = kzalloc((sizeof(*a)) * 6, GFP_KERNEL); 988 a = kcalloc(6, sizeof(*a), GFP_KERNEL);
989 if (!a) 989 if (!a)
990 return -ENOMEM; 990 return -ENOMEM;
991 991
diff --git a/arch/mips/alchemy/common/dbdma.c b/arch/mips/alchemy/common/dbdma.c
index fc482d900ddd..4ca2c28878e0 100644
--- a/arch/mips/alchemy/common/dbdma.c
+++ b/arch/mips/alchemy/common/dbdma.c
@@ -411,8 +411,8 @@ u32 au1xxx_dbdma_ring_alloc(u32 chanid, int entries)
411 * and if we try that first we are likely to not waste larger 411 * and if we try that first we are likely to not waste larger
412 * slabs of memory. 412 * slabs of memory.
413 */ 413 */
414 desc_base = (u32)kmalloc(entries * sizeof(au1x_ddma_desc_t), 414 desc_base = (u32)kmalloc_array(entries, sizeof(au1x_ddma_desc_t),
415 GFP_KERNEL|GFP_DMA); 415 GFP_KERNEL|GFP_DMA);
416 if (desc_base == 0) 416 if (desc_base == 0)
417 return 0; 417 return 0;
418 418
@@ -1050,7 +1050,7 @@ static int __init dbdma_setup(unsigned int irq, dbdev_tab_t *idtable)
1050{ 1050{
1051 int ret; 1051 int ret;
1052 1052
1053 dbdev_tab = kzalloc(sizeof(dbdev_tab_t) * DBDEV_TAB_SIZE, GFP_KERNEL); 1053 dbdev_tab = kcalloc(DBDEV_TAB_SIZE, sizeof(dbdev_tab_t), GFP_KERNEL);
1054 if (!dbdev_tab) 1054 if (!dbdev_tab)
1055 return -ENOMEM; 1055 return -ENOMEM;
1056 1056
diff --git a/arch/mips/alchemy/common/platform.c b/arch/mips/alchemy/common/platform.c
index d77a64f4c78b..1454d9f6ab2d 100644
--- a/arch/mips/alchemy/common/platform.c
+++ b/arch/mips/alchemy/common/platform.c
@@ -115,7 +115,7 @@ static void __init alchemy_setup_uarts(int ctype)
115 uartclk = clk_get_rate(clk); 115 uartclk = clk_get_rate(clk);
116 clk_put(clk); 116 clk_put(clk);
117 117
118 ports = kzalloc(s * (c + 1), GFP_KERNEL); 118 ports = kcalloc(s, (c + 1), GFP_KERNEL);
119 if (!ports) { 119 if (!ports) {
120 printk(KERN_INFO "Alchemy: no memory for UART data\n"); 120 printk(KERN_INFO "Alchemy: no memory for UART data\n");
121 return; 121 return;
@@ -198,7 +198,7 @@ static unsigned long alchemy_ehci_data[][2] __initdata = {
198 198
199static int __init _new_usbres(struct resource **r, struct platform_device **d) 199static int __init _new_usbres(struct resource **r, struct platform_device **d)
200{ 200{
201 *r = kzalloc(sizeof(struct resource) * 2, GFP_KERNEL); 201 *r = kcalloc(2, sizeof(struct resource), GFP_KERNEL);
202 if (!*r) 202 if (!*r)
203 return -ENOMEM; 203 return -ENOMEM;
204 *d = kzalloc(sizeof(struct platform_device), GFP_KERNEL); 204 *d = kzalloc(sizeof(struct platform_device), GFP_KERNEL);
diff --git a/arch/mips/alchemy/devboards/platform.c b/arch/mips/alchemy/devboards/platform.c
index 4640edab207c..203854ddd1bb 100644
--- a/arch/mips/alchemy/devboards/platform.c
+++ b/arch/mips/alchemy/devboards/platform.c
@@ -103,7 +103,7 @@ int __init db1x_register_pcmcia_socket(phys_addr_t pcmcia_attr_start,
103 if (stschg_irq) 103 if (stschg_irq)
104 cnt++; 104 cnt++;
105 105
106 sr = kzalloc(sizeof(struct resource) * cnt, GFP_KERNEL); 106 sr = kcalloc(cnt, sizeof(struct resource), GFP_KERNEL);
107 if (!sr) 107 if (!sr)
108 return -ENOMEM; 108 return -ENOMEM;
109 109
@@ -178,7 +178,7 @@ int __init db1x_register_norflash(unsigned long size, int width,
178 return -EINVAL; 178 return -EINVAL;
179 179
180 ret = -ENOMEM; 180 ret = -ENOMEM;
181 parts = kzalloc(sizeof(struct mtd_partition) * 5, GFP_KERNEL); 181 parts = kcalloc(5, sizeof(struct mtd_partition), GFP_KERNEL);
182 if (!parts) 182 if (!parts)
183 goto out; 183 goto out;
184 184
diff --git a/arch/mips/bmips/dma.c b/arch/mips/bmips/dma.c
index 04790f4e1805..6dec30842b2f 100644
--- a/arch/mips/bmips/dma.c
+++ b/arch/mips/bmips/dma.c
@@ -94,7 +94,7 @@ static int __init bmips_init_dma_ranges(void)
94 goto out_bad; 94 goto out_bad;
95 95
96 /* add a dummy (zero) entry at the end as a sentinel */ 96 /* add a dummy (zero) entry at the end as a sentinel */
97 bmips_dma_ranges = kzalloc(sizeof(struct bmips_dma_range) * (len + 1), 97 bmips_dma_ranges = kcalloc(len + 1, sizeof(struct bmips_dma_range),
98 GFP_KERNEL); 98 GFP_KERNEL);
99 if (!bmips_dma_ranges) 99 if (!bmips_dma_ranges)
100 goto out_bad; 100 goto out_bad;
diff --git a/arch/mips/txx9/rbtx4939/setup.c b/arch/mips/txx9/rbtx4939/setup.c
index fd26fadc8617..ef29a9c2ffd6 100644
--- a/arch/mips/txx9/rbtx4939/setup.c
+++ b/arch/mips/txx9/rbtx4939/setup.c
@@ -219,7 +219,7 @@ static int __init rbtx4939_led_probe(struct platform_device *pdev)
219 "nand-disk", 219 "nand-disk",
220 }; 220 };
221 221
222 leds_data = kzalloc(sizeof(*leds_data) * RBTX4939_MAX_7SEGLEDS, 222 leds_data = kcalloc(RBTX4939_MAX_7SEGLEDS, sizeof(*leds_data),
223 GFP_KERNEL); 223 GFP_KERNEL);
224 if (!leds_data) 224 if (!leds_data)
225 return -ENOMEM; 225 return -ENOMEM;
diff --git a/arch/powerpc/kernel/rtasd.c b/arch/powerpc/kernel/rtasd.c
index f915db93cd42..44d66c33d59d 100644
--- a/arch/powerpc/kernel/rtasd.c
+++ b/arch/powerpc/kernel/rtasd.c
@@ -559,7 +559,8 @@ static int __init rtas_event_scan_init(void)
559 rtas_error_log_max = rtas_get_error_log_max(); 559 rtas_error_log_max = rtas_get_error_log_max();
560 rtas_error_log_buffer_max = rtas_error_log_max + sizeof(int); 560 rtas_error_log_buffer_max = rtas_error_log_max + sizeof(int);
561 561
562 rtas_log_buf = vmalloc(rtas_error_log_buffer_max*LOG_NUMBER); 562 rtas_log_buf = vmalloc(array_size(LOG_NUMBER,
563 rtas_error_log_buffer_max));
563 if (!rtas_log_buf) { 564 if (!rtas_log_buf) {
564 printk(KERN_ERR "rtasd: no memory\n"); 565 printk(KERN_ERR "rtasd: no memory\n");
565 return -ENOMEM; 566 return -ENOMEM;
diff --git a/arch/powerpc/kernel/vdso.c b/arch/powerpc/kernel/vdso.c
index b44ec104a5a1..d2205b97628c 100644
--- a/arch/powerpc/kernel/vdso.c
+++ b/arch/powerpc/kernel/vdso.c
@@ -791,7 +791,7 @@ static int __init vdso_init(void)
791 791
792#ifdef CONFIG_VDSO32 792#ifdef CONFIG_VDSO32
793 /* Make sure pages are in the correct state */ 793 /* Make sure pages are in the correct state */
794 vdso32_pagelist = kzalloc(sizeof(struct page *) * (vdso32_pages + 2), 794 vdso32_pagelist = kcalloc(vdso32_pages + 2, sizeof(struct page *),
795 GFP_KERNEL); 795 GFP_KERNEL);
796 BUG_ON(vdso32_pagelist == NULL); 796 BUG_ON(vdso32_pagelist == NULL);
797 for (i = 0; i < vdso32_pages; i++) { 797 for (i = 0; i < vdso32_pages; i++) {
@@ -805,7 +805,7 @@ static int __init vdso_init(void)
805#endif 805#endif
806 806
807#ifdef CONFIG_PPC64 807#ifdef CONFIG_PPC64
808 vdso64_pagelist = kzalloc(sizeof(struct page *) * (vdso64_pages + 2), 808 vdso64_pagelist = kcalloc(vdso64_pages + 2, sizeof(struct page *),
809 GFP_KERNEL); 809 GFP_KERNEL);
810 BUG_ON(vdso64_pagelist == NULL); 810 BUG_ON(vdso64_pagelist == NULL);
811 for (i = 0; i < vdso64_pages; i++) { 811 for (i = 0; i < vdso64_pages; i++) {
diff --git a/arch/powerpc/kvm/book3s_64_mmu_hv.c b/arch/powerpc/kvm/book3s_64_mmu_hv.c
index a670fa5fbe50..1b3fcafc685e 100644
--- a/arch/powerpc/kvm/book3s_64_mmu_hv.c
+++ b/arch/powerpc/kvm/book3s_64_mmu_hv.c
@@ -108,7 +108,7 @@ int kvmppc_allocate_hpt(struct kvm_hpt_info *info, u32 order)
108 npte = 1ul << (order - 4); 108 npte = 1ul << (order - 4);
109 109
110 /* Allocate reverse map array */ 110 /* Allocate reverse map array */
111 rev = vmalloc(sizeof(struct revmap_entry) * npte); 111 rev = vmalloc(array_size(npte, sizeof(struct revmap_entry)));
112 if (!rev) { 112 if (!rev) {
113 if (cma) 113 if (cma)
114 kvm_free_hpt_cma(page, 1 << (order - PAGE_SHIFT)); 114 kvm_free_hpt_cma(page, 1 << (order - PAGE_SHIFT));
diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c
index 69895597736a..8858ab8b6ca4 100644
--- a/arch/powerpc/kvm/book3s_hv.c
+++ b/arch/powerpc/kvm/book3s_hv.c
@@ -3548,7 +3548,7 @@ static void kvmppc_core_free_memslot_hv(struct kvm_memory_slot *free,
3548static int kvmppc_core_create_memslot_hv(struct kvm_memory_slot *slot, 3548static int kvmppc_core_create_memslot_hv(struct kvm_memory_slot *slot,
3549 unsigned long npages) 3549 unsigned long npages)
3550{ 3550{
3551 slot->arch.rmap = vzalloc(npages * sizeof(*slot->arch.rmap)); 3551 slot->arch.rmap = vzalloc(array_size(npages, sizeof(*slot->arch.rmap)));
3552 if (!slot->arch.rmap) 3552 if (!slot->arch.rmap)
3553 return -ENOMEM; 3553 return -ENOMEM;
3554 3554
diff --git a/arch/powerpc/lib/rheap.c b/arch/powerpc/lib/rheap.c
index 94058c21a482..6aa774aa5b16 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)
54 54
55 new_blocks = max_blocks - info->max_blocks; 55 new_blocks = max_blocks - info->max_blocks;
56 56
57 block = kmalloc(sizeof(rh_block_t) * max_blocks, GFP_ATOMIC); 57 block = kmalloc_array(max_blocks, sizeof(rh_block_t), GFP_ATOMIC);
58 if (block == NULL) 58 if (block == NULL)
59 return -ENOMEM; 59 return -ENOMEM;
60 60
diff --git a/arch/powerpc/mm/mmu_context_iommu.c b/arch/powerpc/mm/mmu_context_iommu.c
index 4c615fcb0cf0..abb43646927a 100644
--- a/arch/powerpc/mm/mmu_context_iommu.c
+++ b/arch/powerpc/mm/mmu_context_iommu.c
@@ -159,7 +159,7 @@ long mm_iommu_get(struct mm_struct *mm, unsigned long ua, unsigned long entries,
159 goto unlock_exit; 159 goto unlock_exit;
160 } 160 }
161 161
162 mem->hpas = vzalloc(entries * sizeof(mem->hpas[0])); 162 mem->hpas = vzalloc(array_size(entries, sizeof(mem->hpas[0])));
163 if (!mem->hpas) { 163 if (!mem->hpas) {
164 kfree(mem); 164 kfree(mem);
165 ret = -ENOMEM; 165 ret = -ENOMEM;
diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c
index 57a5029b4521..0c7e05d89244 100644
--- a/arch/powerpc/mm/numa.c
+++ b/arch/powerpc/mm/numa.c
@@ -1316,7 +1316,7 @@ int numa_update_cpu_topology(bool cpus_locked)
1316 if (!weight) 1316 if (!weight)
1317 return 0; 1317 return 0;
1318 1318
1319 updates = kzalloc(weight * (sizeof(*updates)), GFP_KERNEL); 1319 updates = kcalloc(weight, sizeof(*updates), GFP_KERNEL);
1320 if (!updates) 1320 if (!updates)
1321 return 0; 1321 return 0;
1322 1322
diff --git a/arch/powerpc/net/bpf_jit_comp.c b/arch/powerpc/net/bpf_jit_comp.c
index a9636d8cba15..5b061fc81df3 100644
--- a/arch/powerpc/net/bpf_jit_comp.c
+++ b/arch/powerpc/net/bpf_jit_comp.c
@@ -566,7 +566,7 @@ void bpf_jit_compile(struct bpf_prog *fp)
566 if (!bpf_jit_enable) 566 if (!bpf_jit_enable)
567 return; 567 return;
568 568
569 addrs = kzalloc((flen+1) * sizeof(*addrs), GFP_KERNEL); 569 addrs = kcalloc(flen + 1, sizeof(*addrs), GFP_KERNEL);
570 if (addrs == NULL) 570 if (addrs == NULL)
571 return; 571 return;
572 572
diff --git a/arch/powerpc/net/bpf_jit_comp64.c b/arch/powerpc/net/bpf_jit_comp64.c
index f1c95779843b..380cbf9a40d9 100644
--- a/arch/powerpc/net/bpf_jit_comp64.c
+++ b/arch/powerpc/net/bpf_jit_comp64.c
@@ -949,7 +949,7 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *fp)
949 goto skip_init_ctx; 949 goto skip_init_ctx;
950 } 950 }
951 951
952 addrs = kzalloc((flen+1) * sizeof(*addrs), GFP_KERNEL); 952 addrs = kcalloc(flen + 1, sizeof(*addrs), GFP_KERNEL);
953 if (addrs == NULL) { 953 if (addrs == NULL) {
954 fp = org_fp; 954 fp = org_fp;
955 goto out_addrs; 955 goto out_addrs;
diff --git a/arch/powerpc/oprofile/cell/spu_profiler.c b/arch/powerpc/oprofile/cell/spu_profiler.c
index 5182f2936af2..4e099e556645 100644
--- a/arch/powerpc/oprofile/cell/spu_profiler.c
+++ b/arch/powerpc/oprofile/cell/spu_profiler.c
@@ -210,8 +210,8 @@ int start_spu_profiling_cycles(unsigned int cycles_reset)
210 timer.function = profile_spus; 210 timer.function = profile_spus;
211 211
212 /* Allocate arrays for collecting SPU PC samples */ 212 /* Allocate arrays for collecting SPU PC samples */
213 samples = kzalloc(SPUS_PER_NODE * 213 samples = kcalloc(SPUS_PER_NODE * TRACE_ARRAY_SIZE, sizeof(u32),
214 TRACE_ARRAY_SIZE * sizeof(u32), GFP_KERNEL); 214 GFP_KERNEL);
215 215
216 if (!samples) 216 if (!samples)
217 return -ENOMEM; 217 return -ENOMEM;
diff --git a/arch/powerpc/platforms/4xx/hsta_msi.c b/arch/powerpc/platforms/4xx/hsta_msi.c
index 9926ad67af76..1c18f2955f7d 100644
--- a/arch/powerpc/platforms/4xx/hsta_msi.c
+++ b/arch/powerpc/platforms/4xx/hsta_msi.c
@@ -156,7 +156,8 @@ static int hsta_msi_probe(struct platform_device *pdev)
156 if (ret) 156 if (ret)
157 goto out; 157 goto out;
158 158
159 ppc4xx_hsta_msi.irq_map = kmalloc(sizeof(int) * irq_count, GFP_KERNEL); 159 ppc4xx_hsta_msi.irq_map = kmalloc_array(irq_count, sizeof(int),
160 GFP_KERNEL);
160 if (!ppc4xx_hsta_msi.irq_map) { 161 if (!ppc4xx_hsta_msi.irq_map) {
161 ret = -ENOMEM; 162 ret = -ENOMEM;
162 goto out1; 163 goto out1;
diff --git a/arch/powerpc/platforms/4xx/msi.c b/arch/powerpc/platforms/4xx/msi.c
index 96aaae678928..81b2cbce7df8 100644
--- a/arch/powerpc/platforms/4xx/msi.c
+++ b/arch/powerpc/platforms/4xx/msi.c
@@ -89,7 +89,7 @@ static int ppc4xx_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
89 if (type == PCI_CAP_ID_MSIX) 89 if (type == PCI_CAP_ID_MSIX)
90 pr_debug("ppc4xx msi: MSI-X untested, trying anyway.\n"); 90 pr_debug("ppc4xx msi: MSI-X untested, trying anyway.\n");
91 91
92 msi_data->msi_virqs = kmalloc((msi_irqs) * sizeof(int), GFP_KERNEL); 92 msi_data->msi_virqs = kmalloc_array(msi_irqs, sizeof(int), GFP_KERNEL);
93 if (!msi_data->msi_virqs) 93 if (!msi_data->msi_virqs)
94 return -ENOMEM; 94 return -ENOMEM;
95 95
diff --git a/arch/powerpc/platforms/4xx/pci.c b/arch/powerpc/platforms/4xx/pci.c
index 73e6b36bcd51..5aca523551ae 100644
--- a/arch/powerpc/platforms/4xx/pci.c
+++ b/arch/powerpc/platforms/4xx/pci.c
@@ -1449,7 +1449,7 @@ static int __init ppc4xx_pciex_check_core_init(struct device_node *np)
1449 count = ppc4xx_pciex_hwops->core_init(np); 1449 count = ppc4xx_pciex_hwops->core_init(np);
1450 if (count > 0) { 1450 if (count > 0) {
1451 ppc4xx_pciex_ports = 1451 ppc4xx_pciex_ports =
1452 kzalloc(count * sizeof(struct ppc4xx_pciex_port), 1452 kcalloc(count, sizeof(struct ppc4xx_pciex_port),
1453 GFP_KERNEL); 1453 GFP_KERNEL);
1454 if (ppc4xx_pciex_ports) { 1454 if (ppc4xx_pciex_ports) {
1455 ppc4xx_pciex_port_count = count; 1455 ppc4xx_pciex_port_count = count;
diff --git a/arch/powerpc/platforms/powernv/opal-sysparam.c b/arch/powerpc/platforms/powernv/opal-sysparam.c
index 6fd4092798d5..9aa87df114fd 100644
--- a/arch/powerpc/platforms/powernv/opal-sysparam.c
+++ b/arch/powerpc/platforms/powernv/opal-sysparam.c
@@ -198,21 +198,21 @@ void __init opal_sys_param_init(void)
198 goto out_param_buf; 198 goto out_param_buf;
199 } 199 }
200 200
201 id = kzalloc(sizeof(*id) * count, GFP_KERNEL); 201 id = kcalloc(count, sizeof(*id), GFP_KERNEL);
202 if (!id) { 202 if (!id) {
203 pr_err("SYSPARAM: Failed to allocate memory to read parameter " 203 pr_err("SYSPARAM: Failed to allocate memory to read parameter "
204 "id\n"); 204 "id\n");
205 goto out_param_buf; 205 goto out_param_buf;
206 } 206 }
207 207
208 size = kzalloc(sizeof(*size) * count, GFP_KERNEL); 208 size = kcalloc(count, sizeof(*size), GFP_KERNEL);
209 if (!size) { 209 if (!size) {
210 pr_err("SYSPARAM: Failed to allocate memory to read parameter " 210 pr_err("SYSPARAM: Failed to allocate memory to read parameter "
211 "size\n"); 211 "size\n");
212 goto out_free_id; 212 goto out_free_id;
213 } 213 }
214 214
215 perm = kzalloc(sizeof(*perm) * count, GFP_KERNEL); 215 perm = kcalloc(count, sizeof(*perm), GFP_KERNEL);
216 if (!perm) { 216 if (!perm) {
217 pr_err("SYSPARAM: Failed to allocate memory to read supported " 217 pr_err("SYSPARAM: Failed to allocate memory to read supported "
218 "action on the parameter"); 218 "action on the parameter");
@@ -235,7 +235,7 @@ void __init opal_sys_param_init(void)
235 goto out_free_perm; 235 goto out_free_perm;
236 } 236 }
237 237
238 attr = kzalloc(sizeof(*attr) * count, GFP_KERNEL); 238 attr = kcalloc(count, sizeof(*attr), GFP_KERNEL);
239 if (!attr) { 239 if (!attr) {
240 pr_err("SYSPARAM: Failed to allocate memory for parameter " 240 pr_err("SYSPARAM: Failed to allocate memory for parameter "
241 "attributes\n"); 241 "attributes\n");
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c
index 1d4e0ef658d3..353b43972bbf 100644
--- a/arch/powerpc/sysdev/mpic.c
+++ b/arch/powerpc/sysdev/mpic.c
@@ -544,7 +544,7 @@ static void __init mpic_scan_ht_pics(struct mpic *mpic)
544 printk(KERN_INFO "mpic: Setting up HT PICs workarounds for U3/U4\n"); 544 printk(KERN_INFO "mpic: Setting up HT PICs workarounds for U3/U4\n");
545 545
546 /* Allocate fixups array */ 546 /* Allocate fixups array */
547 mpic->fixups = kzalloc(128 * sizeof(*mpic->fixups), GFP_KERNEL); 547 mpic->fixups = kcalloc(128, sizeof(*mpic->fixups), GFP_KERNEL);
548 BUG_ON(mpic->fixups == NULL); 548 BUG_ON(mpic->fixups == NULL);
549 549
550 /* Init spinlock */ 550 /* Init spinlock */
@@ -1324,7 +1324,7 @@ struct mpic * __init mpic_alloc(struct device_node *node,
1324 if (psrc) { 1324 if (psrc) {
1325 /* Allocate a bitmap with one bit per interrupt */ 1325 /* Allocate a bitmap with one bit per interrupt */
1326 unsigned int mapsize = BITS_TO_LONGS(intvec_top + 1); 1326 unsigned int mapsize = BITS_TO_LONGS(intvec_top + 1);
1327 mpic->protected = kzalloc(mapsize*sizeof(long), GFP_KERNEL); 1327 mpic->protected = kcalloc(mapsize, sizeof(long), GFP_KERNEL);
1328 BUG_ON(mpic->protected == NULL); 1328 BUG_ON(mpic->protected == NULL);
1329 for (i = 0; i < psize/sizeof(u32); i++) { 1329 for (i = 0; i < psize/sizeof(u32); i++) {
1330 if (psrc[i] > intvec_top) 1330 if (psrc[i] > intvec_top)
@@ -1639,8 +1639,9 @@ void __init mpic_init(struct mpic *mpic)
1639 1639
1640#ifdef CONFIG_PM 1640#ifdef CONFIG_PM
1641 /* allocate memory to save mpic state */ 1641 /* allocate memory to save mpic state */
1642 mpic->save_data = kmalloc(mpic->num_sources * sizeof(*mpic->save_data), 1642 mpic->save_data = kmalloc_array(mpic->num_sources,
1643 GFP_KERNEL); 1643 sizeof(*mpic->save_data),
1644 GFP_KERNEL);
1644 BUG_ON(mpic->save_data == NULL); 1645 BUG_ON(mpic->save_data == NULL);
1645#endif 1646#endif
1646 1647
diff --git a/arch/powerpc/sysdev/xive/native.c b/arch/powerpc/sysdev/xive/native.c
index 83bcd72b21cf..311185b9960a 100644
--- a/arch/powerpc/sysdev/xive/native.c
+++ b/arch/powerpc/sysdev/xive/native.c
@@ -489,7 +489,7 @@ static bool xive_parse_provisioning(struct device_node *np)
489 if (rc == 0) 489 if (rc == 0)
490 return true; 490 return true;
491 491
492 xive_provision_chips = kzalloc(4 * xive_provision_chip_count, 492 xive_provision_chips = kcalloc(4, xive_provision_chip_count,
493 GFP_KERNEL); 493 GFP_KERNEL);
494 if (WARN_ON(!xive_provision_chips)) 494 if (WARN_ON(!xive_provision_chips))
495 return false; 495 return false;
diff --git a/arch/s390/appldata/appldata_base.c b/arch/s390/appldata/appldata_base.c
index cb6e8066b1ad..ee6a9c387c87 100644
--- a/arch/s390/appldata/appldata_base.c
+++ b/arch/s390/appldata/appldata_base.c
@@ -391,7 +391,7 @@ int appldata_register_ops(struct appldata_ops *ops)
391 if (ops->size > APPLDATA_MAX_REC_SIZE) 391 if (ops->size > APPLDATA_MAX_REC_SIZE)
392 return -EINVAL; 392 return -EINVAL;
393 393
394 ops->ctl_table = kzalloc(4 * sizeof(struct ctl_table), GFP_KERNEL); 394 ops->ctl_table = kcalloc(4, sizeof(struct ctl_table), GFP_KERNEL);
395 if (!ops->ctl_table) 395 if (!ops->ctl_table)
396 return -ENOMEM; 396 return -ENOMEM;
397 397
diff --git a/arch/s390/hypfs/hypfs_diag.c b/arch/s390/hypfs/hypfs_diag.c
index be8cc53204b5..a2945b289a29 100644
--- a/arch/s390/hypfs/hypfs_diag.c
+++ b/arch/s390/hypfs/hypfs_diag.c
@@ -239,7 +239,7 @@ static void *page_align_ptr(void *ptr)
239static void *diag204_alloc_vbuf(int pages) 239static void *diag204_alloc_vbuf(int pages)
240{ 240{
241 /* The buffer has to be page aligned! */ 241 /* The buffer has to be page aligned! */
242 diag204_buf_vmalloc = vmalloc(PAGE_SIZE * (pages + 1)); 242 diag204_buf_vmalloc = vmalloc(array_size(PAGE_SIZE, (pages + 1)));
243 if (!diag204_buf_vmalloc) 243 if (!diag204_buf_vmalloc)
244 return ERR_PTR(-ENOMEM); 244 return ERR_PTR(-ENOMEM);
245 diag204_buf = page_align_ptr(diag204_buf_vmalloc); 245 diag204_buf = page_align_ptr(diag204_buf_vmalloc);
diff --git a/arch/s390/hypfs/hypfs_diag0c.c b/arch/s390/hypfs/hypfs_diag0c.c
index dce87f1bec94..cebf05150cc1 100644
--- a/arch/s390/hypfs/hypfs_diag0c.c
+++ b/arch/s390/hypfs/hypfs_diag0c.c
@@ -49,7 +49,8 @@ static void *diag0c_store(unsigned int *count)
49 49
50 get_online_cpus(); 50 get_online_cpus();
51 cpu_count = num_online_cpus(); 51 cpu_count = num_online_cpus();
52 cpu_vec = kmalloc(sizeof(*cpu_vec) * num_possible_cpus(), GFP_KERNEL); 52 cpu_vec = kmalloc_array(num_possible_cpus(), sizeof(*cpu_vec),
53 GFP_KERNEL);
53 if (!cpu_vec) 54 if (!cpu_vec)
54 goto fail_put_online_cpus; 55 goto fail_put_online_cpus;
55 /* Note: Diag 0c needs 8 byte alignment and real storage */ 56 /* Note: Diag 0c needs 8 byte alignment and real storage */
diff --git a/arch/s390/kernel/debug.c b/arch/s390/kernel/debug.c
index 80e974adb9e8..d374f9b218b4 100644
--- a/arch/s390/kernel/debug.c
+++ b/arch/s390/kernel/debug.c
@@ -194,11 +194,13 @@ static debug_entry_t ***debug_areas_alloc(int pages_per_area, int nr_areas)
194 debug_entry_t ***areas; 194 debug_entry_t ***areas;
195 int i, j; 195 int i, j;
196 196
197 areas = kmalloc(nr_areas * sizeof(debug_entry_t **), GFP_KERNEL); 197 areas = kmalloc_array(nr_areas, sizeof(debug_entry_t **), GFP_KERNEL);
198 if (!areas) 198 if (!areas)
199 goto fail_malloc_areas; 199 goto fail_malloc_areas;
200 for (i = 0; i < nr_areas; i++) { 200 for (i = 0; i < nr_areas; i++) {
201 areas[i] = kmalloc(pages_per_area * sizeof(debug_entry_t *), GFP_KERNEL); 201 areas[i] = kmalloc_array(pages_per_area,
202 sizeof(debug_entry_t *),
203 GFP_KERNEL);
202 if (!areas[i]) 204 if (!areas[i])
203 goto fail_malloc_areas2; 205 goto fail_malloc_areas2;
204 for (j = 0; j < pages_per_area; j++) { 206 for (j = 0; j < pages_per_area; j++) {
diff --git a/arch/s390/kernel/module.c b/arch/s390/kernel/module.c
index 0dc8ac8548ee..d298d3cb46d0 100644
--- a/arch/s390/kernel/module.c
+++ b/arch/s390/kernel/module.c
@@ -123,8 +123,8 @@ int module_frob_arch_sections(Elf_Ehdr *hdr, Elf_Shdr *sechdrs,
123 123
124 /* Allocate one syminfo structure per symbol. */ 124 /* Allocate one syminfo structure per symbol. */
125 me->arch.nsyms = symtab->sh_size / sizeof(Elf_Sym); 125 me->arch.nsyms = symtab->sh_size / sizeof(Elf_Sym);
126 me->arch.syminfo = vmalloc(me->arch.nsyms * 126 me->arch.syminfo = vmalloc(array_size(sizeof(struct mod_arch_syminfo),
127 sizeof(struct mod_arch_syminfo)); 127 me->arch.nsyms));
128 if (!me->arch.syminfo) 128 if (!me->arch.syminfo)
129 return -ENOMEM; 129 return -ENOMEM;
130 symbols = (void *) hdr + symtab->sh_offset; 130 symbols = (void *) hdr + symtab->sh_offset;
diff --git a/arch/s390/kernel/perf_cpum_cf_events.c b/arch/s390/kernel/perf_cpum_cf_events.c
index feebb2944882..d63fb3c56b8a 100644
--- a/arch/s390/kernel/perf_cpum_cf_events.c
+++ b/arch/s390/kernel/perf_cpum_cf_events.c
@@ -527,7 +527,7 @@ static __init struct attribute **merge_attr(struct attribute **a,
527 j++; 527 j++;
528 j++; 528 j++;
529 529
530 new = kmalloc(sizeof(struct attribute *) * j, GFP_KERNEL); 530 new = kmalloc_array(j, sizeof(struct attribute *), GFP_KERNEL);
531 if (!new) 531 if (!new)
532 return NULL; 532 return NULL;
533 j = 0; 533 j = 0;
diff --git a/arch/s390/kernel/sthyi.c b/arch/s390/kernel/sthyi.c
index 80b862e9c53c..0859cde36f75 100644
--- a/arch/s390/kernel/sthyi.c
+++ b/arch/s390/kernel/sthyi.c
@@ -315,7 +315,7 @@ static void fill_diag(struct sthyi_sctns *sctns)
315 if (pages <= 0) 315 if (pages <= 0)
316 return; 316 return;
317 317
318 diag204_buf = vmalloc(PAGE_SIZE * pages); 318 diag204_buf = vmalloc(array_size(pages, PAGE_SIZE));
319 if (!diag204_buf) 319 if (!diag204_buf)
320 return; 320 return;
321 321
diff --git a/arch/s390/kernel/vdso.c b/arch/s390/kernel/vdso.c
index f3a1c7c6824e..09abae40f917 100644
--- a/arch/s390/kernel/vdso.c
+++ b/arch/s390/kernel/vdso.c
@@ -285,7 +285,7 @@ static int __init vdso_init(void)
285 + PAGE_SIZE - 1) >> PAGE_SHIFT) + 1; 285 + PAGE_SIZE - 1) >> PAGE_SHIFT) + 1;
286 286
287 /* Make sure pages are in the correct state */ 287 /* Make sure pages are in the correct state */
288 vdso32_pagelist = kzalloc(sizeof(struct page *) * (vdso32_pages + 1), 288 vdso32_pagelist = kcalloc(vdso32_pages + 1, sizeof(struct page *),
289 GFP_KERNEL); 289 GFP_KERNEL);
290 BUG_ON(vdso32_pagelist == NULL); 290 BUG_ON(vdso32_pagelist == NULL);
291 for (i = 0; i < vdso32_pages - 1; i++) { 291 for (i = 0; i < vdso32_pages - 1; i++) {
@@ -303,7 +303,7 @@ static int __init vdso_init(void)
303 + PAGE_SIZE - 1) >> PAGE_SHIFT) + 1; 303 + PAGE_SIZE - 1) >> PAGE_SHIFT) + 1;
304 304
305 /* Make sure pages are in the correct state */ 305 /* Make sure pages are in the correct state */
306 vdso64_pagelist = kzalloc(sizeof(struct page *) * (vdso64_pages + 1), 306 vdso64_pagelist = kcalloc(vdso64_pages + 1, sizeof(struct page *),
307 GFP_KERNEL); 307 GFP_KERNEL);
308 BUG_ON(vdso64_pagelist == NULL); 308 BUG_ON(vdso64_pagelist == NULL);
309 for (i = 0; i < vdso64_pages - 1; i++) { 309 for (i = 0; i < vdso64_pages - 1; i++) {
diff --git a/arch/s390/kvm/gaccess.c b/arch/s390/kvm/gaccess.c
index 8e2b8647ee12..07d30ffcfa41 100644
--- a/arch/s390/kvm/gaccess.c
+++ b/arch/s390/kvm/gaccess.c
@@ -847,7 +847,7 @@ int access_guest(struct kvm_vcpu *vcpu, unsigned long ga, u8 ar, void *data,
847 nr_pages = (((ga & ~PAGE_MASK) + len - 1) >> PAGE_SHIFT) + 1; 847 nr_pages = (((ga & ~PAGE_MASK) + len - 1) >> PAGE_SHIFT) + 1;
848 pages = pages_array; 848 pages = pages_array;
849 if (nr_pages > ARRAY_SIZE(pages_array)) 849 if (nr_pages > ARRAY_SIZE(pages_array))
850 pages = vmalloc(nr_pages * sizeof(unsigned long)); 850 pages = vmalloc(array_size(nr_pages, sizeof(unsigned long)));
851 if (!pages) 851 if (!pages)
852 return -ENOMEM; 852 return -ENOMEM;
853 need_ipte_lock = psw_bits(*psw).dat && !asce.r; 853 need_ipte_lock = psw_bits(*psw).dat && !asce.r;
diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
index 7142508ca6e1..3b7a5151b6a5 100644
--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -1729,7 +1729,7 @@ static int kvm_s390_set_cmma_bits(struct kvm *kvm,
1729 if (args->count == 0) 1729 if (args->count == 0)
1730 return 0; 1730 return 0;
1731 1731
1732 bits = vmalloc(sizeof(*bits) * args->count); 1732 bits = vmalloc(array_size(sizeof(*bits), args->count));
1733 if (!bits) 1733 if (!bits)
1734 return -ENOMEM; 1734 return -ENOMEM;
1735 1735
diff --git a/arch/s390/mm/extmem.c b/arch/s390/mm/extmem.c
index 920d40894535..6ad15d3fab81 100644
--- a/arch/s390/mm/extmem.c
+++ b/arch/s390/mm/extmem.c
@@ -103,7 +103,7 @@ static int scode_set;
103static int 103static int
104dcss_set_subcodes(void) 104dcss_set_subcodes(void)
105{ 105{
106 char *name = kmalloc(8 * sizeof(char), GFP_KERNEL | GFP_DMA); 106 char *name = kmalloc(8, GFP_KERNEL | GFP_DMA);
107 unsigned long rx, ry; 107 unsigned long rx, ry;
108 int rc; 108 int rc;
109 109
diff --git a/arch/sh/drivers/dma/dmabrg.c b/arch/sh/drivers/dma/dmabrg.c
index c0dd904483c7..e5a57a109d6c 100644
--- a/arch/sh/drivers/dma/dmabrg.c
+++ b/arch/sh/drivers/dma/dmabrg.c
@@ -154,7 +154,7 @@ static int __init dmabrg_init(void)
154 unsigned long or; 154 unsigned long or;
155 int ret; 155 int ret;
156 156
157 dmabrg_handlers = kzalloc(10 * sizeof(struct dmabrg_handler), 157 dmabrg_handlers = kcalloc(10, sizeof(struct dmabrg_handler),
158 GFP_KERNEL); 158 GFP_KERNEL);
159 if (!dmabrg_handlers) 159 if (!dmabrg_handlers)
160 return -ENOMEM; 160 return -ENOMEM;
diff --git a/arch/sh/drivers/pci/pcie-sh7786.c b/arch/sh/drivers/pci/pcie-sh7786.c
index 382e7ecf4c82..3d81a8b80942 100644
--- a/arch/sh/drivers/pci/pcie-sh7786.c
+++ b/arch/sh/drivers/pci/pcie-sh7786.c
@@ -561,7 +561,7 @@ static int __init sh7786_pcie_init(void)
561 if (unlikely(nr_ports == 0)) 561 if (unlikely(nr_ports == 0))
562 return -ENODEV; 562 return -ENODEV;
563 563
564 sh7786_pcie_ports = kzalloc(nr_ports * sizeof(struct sh7786_pcie_port), 564 sh7786_pcie_ports = kcalloc(nr_ports, sizeof(struct sh7786_pcie_port),
565 GFP_KERNEL); 565 GFP_KERNEL);
566 if (unlikely(!sh7786_pcie_ports)) 566 if (unlikely(!sh7786_pcie_ports))
567 return -ENOMEM; 567 return -ENOMEM;
diff --git a/arch/sparc/kernel/nmi.c b/arch/sparc/kernel/nmi.c
index 048ad783ea3f..8babbeb30adf 100644
--- a/arch/sparc/kernel/nmi.c
+++ b/arch/sparc/kernel/nmi.c
@@ -166,7 +166,8 @@ static int __init check_nmi_watchdog(void)
166 if (!atomic_read(&nmi_active)) 166 if (!atomic_read(&nmi_active))
167 return 0; 167 return 0;
168 168
169 prev_nmi_count = kmalloc(nr_cpu_ids * sizeof(unsigned int), GFP_KERNEL); 169 prev_nmi_count = kmalloc_array(nr_cpu_ids, sizeof(unsigned int),
170 GFP_KERNEL);
170 if (!prev_nmi_count) { 171 if (!prev_nmi_count) {
171 err = -ENOMEM; 172 err = -ENOMEM;
172 goto error; 173 goto error;
diff --git a/arch/sparc/kernel/sys_sparc_64.c b/arch/sparc/kernel/sys_sparc_64.c
index 7e49bbc925a5..63baa8aa9414 100644
--- a/arch/sparc/kernel/sys_sparc_64.c
+++ b/arch/sparc/kernel/sys_sparc_64.c
@@ -565,7 +565,8 @@ SYSCALL_DEFINE5(utrap_install, utrap_entry_t, type,
565 } 565 }
566 if (!current_thread_info()->utraps) { 566 if (!current_thread_info()->utraps) {
567 current_thread_info()->utraps = 567 current_thread_info()->utraps =
568 kzalloc((UT_TRAP_INSTRUCTION_31+1)*sizeof(long), GFP_KERNEL); 568 kcalloc(UT_TRAP_INSTRUCTION_31 + 1, sizeof(long),
569 GFP_KERNEL);
569 if (!current_thread_info()->utraps) 570 if (!current_thread_info()->utraps)
570 return -ENOMEM; 571 return -ENOMEM;
571 current_thread_info()->utraps[0] = 1; 572 current_thread_info()->utraps[0] = 1;
@@ -575,8 +576,9 @@ SYSCALL_DEFINE5(utrap_install, utrap_entry_t, type,
575 unsigned long *p = current_thread_info()->utraps; 576 unsigned long *p = current_thread_info()->utraps;
576 577
577 current_thread_info()->utraps = 578 current_thread_info()->utraps =
578 kmalloc((UT_TRAP_INSTRUCTION_31+1)*sizeof(long), 579 kmalloc_array(UT_TRAP_INSTRUCTION_31 + 1,
579 GFP_KERNEL); 580 sizeof(long),
581 GFP_KERNEL);
580 if (!current_thread_info()->utraps) { 582 if (!current_thread_info()->utraps) {
581 current_thread_info()->utraps = p; 583 current_thread_info()->utraps = p;
582 return -ENOMEM; 584 return -ENOMEM;
diff --git a/arch/sparc/net/bpf_jit_comp_32.c b/arch/sparc/net/bpf_jit_comp_32.c
index 3bd8ca95e521..a5ff88643d5c 100644
--- a/arch/sparc/net/bpf_jit_comp_32.c
+++ b/arch/sparc/net/bpf_jit_comp_32.c
@@ -335,7 +335,7 @@ void bpf_jit_compile(struct bpf_prog *fp)
335 if (!bpf_jit_enable) 335 if (!bpf_jit_enable)
336 return; 336 return;
337 337
338 addrs = kmalloc(flen * sizeof(*addrs), GFP_KERNEL); 338 addrs = kmalloc_array(flen, sizeof(*addrs), GFP_KERNEL);
339 if (addrs == NULL) 339 if (addrs == NULL)
340 return; 340 return;
341 341
diff --git a/arch/um/drivers/ubd_kern.c b/arch/um/drivers/ubd_kern.c
index dcf5ea28a281..83c470364dfb 100644
--- a/arch/um/drivers/ubd_kern.c
+++ b/arch/um/drivers/ubd_kern.c
@@ -1127,9 +1127,9 @@ static int __init ubd_init(void)
1127 return -1; 1127 return -1;
1128 } 1128 }
1129 1129
1130 irq_req_buffer = kmalloc( 1130 irq_req_buffer = kmalloc_array(UBD_REQ_BUFFER_SIZE,
1131 sizeof(struct io_thread_req *) * UBD_REQ_BUFFER_SIZE, 1131 sizeof(struct io_thread_req *),
1132 GFP_KERNEL 1132 GFP_KERNEL
1133 ); 1133 );
1134 irq_remainder = 0; 1134 irq_remainder = 0;
1135 1135
@@ -1137,9 +1137,9 @@ static int __init ubd_init(void)
1137 printk(KERN_ERR "Failed to initialize ubd buffering\n"); 1137 printk(KERN_ERR "Failed to initialize ubd buffering\n");
1138 return -1; 1138 return -1;
1139 } 1139 }
1140 io_req_buffer = kmalloc( 1140 io_req_buffer = kmalloc_array(UBD_REQ_BUFFER_SIZE,
1141 sizeof(struct io_thread_req *) * UBD_REQ_BUFFER_SIZE, 1141 sizeof(struct io_thread_req *),
1142 GFP_KERNEL 1142 GFP_KERNEL
1143 ); 1143 );
1144 1144
1145 io_remainder = 0; 1145 io_remainder = 0;
diff --git a/arch/um/drivers/vector_kern.c b/arch/um/drivers/vector_kern.c
index 02168fe25105..627075e6d875 100644
--- a/arch/um/drivers/vector_kern.c
+++ b/arch/um/drivers/vector_kern.c
@@ -527,14 +527,14 @@ static struct vector_queue *create_queue(
527 result->max_iov_frags = num_extra_frags; 527 result->max_iov_frags = num_extra_frags;
528 for (i = 0; i < max_size; i++) { 528 for (i = 0; i < max_size; i++) {
529 if (vp->header_size > 0) 529 if (vp->header_size > 0)
530 iov = kmalloc( 530 iov = kmalloc_array(3 + num_extra_frags,
531 sizeof(struct iovec) * (3 + num_extra_frags), 531 sizeof(struct iovec),
532 GFP_KERNEL 532 GFP_KERNEL
533 ); 533 );
534 else 534 else
535 iov = kmalloc( 535 iov = kmalloc_array(2 + num_extra_frags,
536 sizeof(struct iovec) * (2 + num_extra_frags), 536 sizeof(struct iovec),
537 GFP_KERNEL 537 GFP_KERNEL
538 ); 538 );
539 if (iov == NULL) 539 if (iov == NULL)
540 goto out_fail; 540 goto out_fail;
diff --git a/arch/unicore32/kernel/pm.c b/arch/unicore32/kernel/pm.c
index 784bc2db3b28..6f8164d91dc2 100644
--- a/arch/unicore32/kernel/pm.c
+++ b/arch/unicore32/kernel/pm.c
@@ -109,8 +109,9 @@ static int __init puv3_pm_init(void)
109 return -EINVAL; 109 return -EINVAL;
110 } 110 }
111 111
112 sleep_save = kmalloc(puv3_cpu_pm_fns->save_count 112 sleep_save = kmalloc_array(puv3_cpu_pm_fns->save_count,
113 * sizeof(unsigned long), GFP_KERNEL); 113 sizeof(unsigned long),
114 GFP_KERNEL);
114 if (!sleep_save) { 115 if (!sleep_save) {
115 printk(KERN_ERR "failed to alloc memory for pm save\n"); 116 printk(KERN_ERR "failed to alloc memory for pm save\n");
116 return -ENOMEM; 117 return -ENOMEM;
diff --git a/arch/x86/events/amd/iommu.c b/arch/x86/events/amd/iommu.c
index 38b5d41b0c37..3210fee27e7f 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)
387 while (amd_iommu_v2_event_descs[i].attr.attr.name) 387 while (amd_iommu_v2_event_descs[i].attr.attr.name)
388 i++; 388 i++;
389 389
390 attrs = kzalloc(sizeof(struct attribute **) * (i + 1), GFP_KERNEL); 390 attrs = kcalloc(i + 1, sizeof(struct attribute **), GFP_KERNEL);
391 if (!attrs) 391 if (!attrs)
392 return -ENOMEM; 392 return -ENOMEM;
393 393
diff --git a/arch/x86/events/core.c b/arch/x86/events/core.c
index 6e461fb1e0d4..5f4829f10129 100644
--- a/arch/x86/events/core.c
+++ b/arch/x86/events/core.c
@@ -1637,7 +1637,7 @@ __init struct attribute **merge_attr(struct attribute **a, struct attribute **b)
1637 j++; 1637 j++;
1638 j++; 1638 j++;
1639 1639
1640 new = kmalloc(sizeof(struct attribute *) * j, GFP_KERNEL); 1640 new = kmalloc_array(j, sizeof(struct attribute *), GFP_KERNEL);
1641 if (!new) 1641 if (!new)
1642 return NULL; 1642 return NULL;
1643 1643
diff --git a/arch/x86/events/intel/uncore.c b/arch/x86/events/intel/uncore.c
index 15b07379e72d..27a461414b30 100644
--- a/arch/x86/events/intel/uncore.c
+++ b/arch/x86/events/intel/uncore.c
@@ -865,12 +865,10 @@ static void uncore_types_exit(struct intel_uncore_type **types)
865static int __init uncore_type_init(struct intel_uncore_type *type, bool setid) 865static int __init uncore_type_init(struct intel_uncore_type *type, bool setid)
866{ 866{
867 struct intel_uncore_pmu *pmus; 867 struct intel_uncore_pmu *pmus;
868 struct attribute_group *attr_group;
869 struct attribute **attrs;
870 size_t size; 868 size_t size;
871 int i, j; 869 int i, j;
872 870
873 pmus = kzalloc(sizeof(*pmus) * type->num_boxes, GFP_KERNEL); 871 pmus = kcalloc(type->num_boxes, sizeof(*pmus), GFP_KERNEL);
874 if (!pmus) 872 if (!pmus)
875 return -ENOMEM; 873 return -ENOMEM;
876 874
@@ -891,21 +889,24 @@ static int __init uncore_type_init(struct intel_uncore_type *type, bool setid)
891 0, type->num_counters, 0, 0); 889 0, type->num_counters, 0, 0);
892 890
893 if (type->event_descs) { 891 if (type->event_descs) {
892 struct {
893 struct attribute_group group;
894 struct attribute *attrs[];
895 } *attr_group;
894 for (i = 0; type->event_descs[i].attr.attr.name; i++); 896 for (i = 0; type->event_descs[i].attr.attr.name; i++);
895 897
896 attr_group = kzalloc(sizeof(struct attribute *) * (i + 1) + 898 attr_group = kzalloc(struct_size(attr_group, attrs, i + 1),
897 sizeof(*attr_group), GFP_KERNEL); 899 GFP_KERNEL);
898 if (!attr_group) 900 if (!attr_group)
899 goto err; 901 goto err;
900 902
901 attrs = (struct attribute **)(attr_group + 1); 903 attr_group->group.name = "events";
902 attr_group->name = "events"; 904 attr_group->group.attrs = attr_group->attrs;
903 attr_group->attrs = attrs;
904 905
905 for (j = 0; j < i; j++) 906 for (j = 0; j < i; j++)
906 attrs[j] = &type->event_descs[j].attr.attr; 907 attr_group->attrs[j] = &type->event_descs[j].attr.attr;
907 908
908 type->events_group = attr_group; 909 type->events_group = &attr_group->group;
909 } 910 }
910 911
911 type->pmu_group = &uncore_pmu_attr_group; 912 type->pmu_group = &uncore_pmu_attr_group;
diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
index cd76380af79f..e4cf6ff1c2e1 100644
--- a/arch/x86/kernel/cpu/mcheck/mce.c
+++ b/arch/x86/kernel/cpu/mcheck/mce.c
@@ -1457,7 +1457,7 @@ static int __mcheck_cpu_mce_banks_init(void)
1457 int i; 1457 int i;
1458 u8 num_banks = mca_cfg.banks; 1458 u8 num_banks = mca_cfg.banks;
1459 1459
1460 mce_banks = kzalloc(num_banks * sizeof(struct mce_bank), GFP_KERNEL); 1460 mce_banks = kcalloc(num_banks, sizeof(struct mce_bank), GFP_KERNEL);
1461 if (!mce_banks) 1461 if (!mce_banks)
1462 return -ENOMEM; 1462 return -ENOMEM;
1463 1463
diff --git a/arch/x86/kernel/cpu/mcheck/mce_amd.c b/arch/x86/kernel/cpu/mcheck/mce_amd.c
index f591b01930db..dd33c357548f 100644
--- a/arch/x86/kernel/cpu/mcheck/mce_amd.c
+++ b/arch/x86/kernel/cpu/mcheck/mce_amd.c
@@ -1384,7 +1384,7 @@ int mce_threshold_create_device(unsigned int cpu)
1384 if (bp) 1384 if (bp)
1385 return 0; 1385 return 0;
1386 1386
1387 bp = kzalloc(sizeof(struct threshold_bank *) * mca_cfg.banks, 1387 bp = kcalloc(mca_cfg.banks, sizeof(struct threshold_bank *),
1388 GFP_KERNEL); 1388 GFP_KERNEL);
1389 if (!bp) 1389 if (!bp)
1390 return -ENOMEM; 1390 return -ENOMEM;
diff --git a/arch/x86/kernel/cpu/mtrr/if.c b/arch/x86/kernel/cpu/mtrr/if.c
index c610f47373e4..4021d3859499 100644
--- a/arch/x86/kernel/cpu/mtrr/if.c
+++ b/arch/x86/kernel/cpu/mtrr/if.c
@@ -43,7 +43,7 @@ mtrr_file_add(unsigned long base, unsigned long size,
43 43
44 max = num_var_ranges; 44 max = num_var_ranges;
45 if (fcount == NULL) { 45 if (fcount == NULL) {
46 fcount = kzalloc(max * sizeof *fcount, GFP_KERNEL); 46 fcount = kcalloc(max, sizeof(*fcount), GFP_KERNEL);
47 if (!fcount) 47 if (!fcount)
48 return -ENOMEM; 48 return -ENOMEM;
49 FILE_FCOUNT(file) = fcount; 49 FILE_FCOUNT(file) = fcount;
diff --git a/arch/x86/kernel/hpet.c b/arch/x86/kernel/hpet.c
index b6be34ee88e9..346b24883911 100644
--- a/arch/x86/kernel/hpet.c
+++ b/arch/x86/kernel/hpet.c
@@ -610,7 +610,7 @@ static void hpet_msi_capability_lookup(unsigned int start_timer)
610 if (!hpet_domain) 610 if (!hpet_domain)
611 return; 611 return;
612 612
613 hpet_devs = kzalloc(sizeof(struct hpet_dev) * num_timers, GFP_KERNEL); 613 hpet_devs = kcalloc(num_timers, sizeof(struct hpet_dev), GFP_KERNEL);
614 if (!hpet_devs) 614 if (!hpet_devs)
615 return; 615 return;
616 616
@@ -966,8 +966,8 @@ int __init hpet_enable(void)
966#endif 966#endif
967 967
968 cfg = hpet_readl(HPET_CFG); 968 cfg = hpet_readl(HPET_CFG);
969 hpet_boot_cfg = kmalloc((last + 2) * sizeof(*hpet_boot_cfg), 969 hpet_boot_cfg = kmalloc_array(last + 2, sizeof(*hpet_boot_cfg),
970 GFP_KERNEL); 970 GFP_KERNEL);
971 if (hpet_boot_cfg) 971 if (hpet_boot_cfg)
972 *hpet_boot_cfg = cfg; 972 *hpet_boot_cfg = cfg;
973 else 973 else
diff --git a/arch/x86/kernel/ksysfs.c b/arch/x86/kernel/ksysfs.c
index 8c1cc08f514f..163ae706a0d4 100644
--- a/arch/x86/kernel/ksysfs.c
+++ b/arch/x86/kernel/ksysfs.c
@@ -283,7 +283,7 @@ static int __init create_setup_data_nodes(struct kobject *parent)
283 if (ret) 283 if (ret)
284 goto out_setup_data_kobj; 284 goto out_setup_data_kobj;
285 285
286 kobjp = kmalloc(sizeof(*kobjp) * nr, GFP_KERNEL); 286 kobjp = kmalloc_array(nr, sizeof(*kobjp), GFP_KERNEL);
287 if (!kobjp) { 287 if (!kobjp) {
288 ret = -ENOMEM; 288 ret = -ENOMEM;
289 goto out_setup_data_kobj; 289 goto out_setup_data_kobj;
diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c
index 5720e78b2f7b..7e042e3d47fd 100644
--- a/arch/x86/kvm/cpuid.c
+++ b/arch/x86/kvm/cpuid.c
@@ -203,8 +203,9 @@ int kvm_vcpu_ioctl_set_cpuid(struct kvm_vcpu *vcpu,
203 goto out; 203 goto out;
204 r = -ENOMEM; 204 r = -ENOMEM;
205 if (cpuid->nent) { 205 if (cpuid->nent) {
206 cpuid_entries = vmalloc(sizeof(struct kvm_cpuid_entry) * 206 cpuid_entries =
207 cpuid->nent); 207 vmalloc(array_size(sizeof(struct kvm_cpuid_entry),
208 cpuid->nent));
208 if (!cpuid_entries) 209 if (!cpuid_entries)
209 goto out; 210 goto out;
210 r = -EFAULT; 211 r = -EFAULT;
@@ -785,7 +786,8 @@ int kvm_dev_ioctl_get_cpuid(struct kvm_cpuid2 *cpuid,
785 return -EINVAL; 786 return -EINVAL;
786 787
787 r = -ENOMEM; 788 r = -ENOMEM;
788 cpuid_entries = vzalloc(sizeof(struct kvm_cpuid_entry2) * cpuid->nent); 789 cpuid_entries = vzalloc(array_size(sizeof(struct kvm_cpuid_entry2),
790 cpuid->nent));
789 if (!cpuid_entries) 791 if (!cpuid_entries)
790 goto out; 792 goto out;
791 793
diff --git a/arch/x86/kvm/page_track.c b/arch/x86/kvm/page_track.c
index 01c1371f39f8..3052a59a3065 100644
--- a/arch/x86/kvm/page_track.c
+++ b/arch/x86/kvm/page_track.c
@@ -40,8 +40,9 @@ int kvm_page_track_create_memslot(struct kvm_memory_slot *slot,
40 int i; 40 int i;
41 41
42 for (i = 0; i < KVM_PAGE_TRACK_MAX; i++) { 42 for (i = 0; i < KVM_PAGE_TRACK_MAX; i++) {
43 slot->arch.gfn_track[i] = kvzalloc(npages * 43 slot->arch.gfn_track[i] =
44 sizeof(*slot->arch.gfn_track[i]), GFP_KERNEL); 44 kvcalloc(npages, sizeof(*slot->arch.gfn_track[i]),
45 GFP_KERNEL);
45 if (!slot->arch.gfn_track[i]) 46 if (!slot->arch.gfn_track[i])
46 goto track_free; 47 goto track_free;
47 } 48 }
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
index 695b0bd02220..f059a73f0fd0 100644
--- a/arch/x86/kvm/svm.c
+++ b/arch/x86/kvm/svm.c
@@ -1001,7 +1001,9 @@ static int svm_cpu_init(int cpu)
1001 1001
1002 if (svm_sev_enabled()) { 1002 if (svm_sev_enabled()) {
1003 r = -ENOMEM; 1003 r = -ENOMEM;
1004 sd->sev_vmcbs = kmalloc((max_sev_asid + 1) * sizeof(void *), GFP_KERNEL); 1004 sd->sev_vmcbs = kmalloc_array(max_sev_asid + 1,
1005 sizeof(void *),
1006 GFP_KERNEL);
1005 if (!sd->sev_vmcbs) 1007 if (!sd->sev_vmcbs)
1006 goto err_1; 1008 goto err_1;
1007 } 1009 }
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index cc8c8be1e92d..6bcecc325e7e 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -8900,13 +8900,14 @@ int kvm_arch_create_memslot(struct kvm *kvm, struct kvm_memory_slot *slot,
8900 slot->base_gfn, level) + 1; 8900 slot->base_gfn, level) + 1;
8901 8901
8902 slot->arch.rmap[i] = 8902 slot->arch.rmap[i] =
8903 kvzalloc(lpages * sizeof(*slot->arch.rmap[i]), GFP_KERNEL); 8903 kvcalloc(lpages, sizeof(*slot->arch.rmap[i]),
8904 GFP_KERNEL);
8904 if (!slot->arch.rmap[i]) 8905 if (!slot->arch.rmap[i])
8905 goto out_free; 8906 goto out_free;
8906 if (i == 0) 8907 if (i == 0)
8907 continue; 8908 continue;
8908 8909
8909 linfo = kvzalloc(lpages * sizeof(*linfo), GFP_KERNEL); 8910 linfo = kvcalloc(lpages, sizeof(*linfo), GFP_KERNEL);
8910 if (!linfo) 8911 if (!linfo)
8911 goto out_free; 8912 goto out_free;
8912 8913
diff --git a/arch/x86/net/bpf_jit_comp.c b/arch/x86/net/bpf_jit_comp.c
index 8fca446aaef6..2580cd2e98b1 100644
--- a/arch/x86/net/bpf_jit_comp.c
+++ b/arch/x86/net/bpf_jit_comp.c
@@ -1107,7 +1107,7 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog)
1107 extra_pass = true; 1107 extra_pass = true;
1108 goto skip_init_addrs; 1108 goto skip_init_addrs;
1109 } 1109 }
1110 addrs = kmalloc(prog->len * sizeof(*addrs), GFP_KERNEL); 1110 addrs = kmalloc_array(prog->len, sizeof(*addrs), GFP_KERNEL);
1111 if (!addrs) { 1111 if (!addrs) {
1112 prog = orig_prog; 1112 prog = orig_prog;
1113 goto out_addrs; 1113 goto out_addrs;
diff --git a/arch/x86/net/bpf_jit_comp32.c b/arch/x86/net/bpf_jit_comp32.c
index 0cc04e30adc1..55799873ebe5 100644
--- a/arch/x86/net/bpf_jit_comp32.c
+++ b/arch/x86/net/bpf_jit_comp32.c
@@ -2345,7 +2345,7 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog)
2345 prog = tmp; 2345 prog = tmp;
2346 } 2346 }
2347 2347
2348 addrs = kmalloc(prog->len * sizeof(*addrs), GFP_KERNEL); 2348 addrs = kmalloc_array(prog->len, sizeof(*addrs), GFP_KERNEL);
2349 if (!addrs) { 2349 if (!addrs) {
2350 prog = orig_prog; 2350 prog = orig_prog;
2351 goto out; 2351 goto out;
diff --git a/arch/x86/pci/xen.c b/arch/x86/pci/xen.c
index 9542a746dc50..9112d1cb397b 100644
--- a/arch/x86/pci/xen.c
+++ b/arch/x86/pci/xen.c
@@ -168,7 +168,7 @@ static int xen_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
168 if (type == PCI_CAP_ID_MSI && nvec > 1) 168 if (type == PCI_CAP_ID_MSI && nvec > 1)
169 return 1; 169 return 1;
170 170
171 v = kzalloc(sizeof(int) * max(1, nvec), GFP_KERNEL); 171 v = kcalloc(max(1, nvec), sizeof(int), GFP_KERNEL);
172 if (!v) 172 if (!v)
173 return -ENOMEM; 173 return -ENOMEM;
174 174
diff --git a/arch/x86/platform/uv/tlb_uv.c b/arch/x86/platform/uv/tlb_uv.c
index b96d38288c60..ca446da48fd2 100644
--- a/arch/x86/platform/uv/tlb_uv.c
+++ b/arch/x86/platform/uv/tlb_uv.c
@@ -2142,7 +2142,7 @@ static int __init init_per_cpu(int nuvhubs, int base_part_pnode)
2142 if (is_uv3_hub() || is_uv2_hub() || is_uv1_hub()) 2142 if (is_uv3_hub() || is_uv2_hub() || is_uv1_hub())
2143 timeout_us = calculate_destination_timeout(); 2143 timeout_us = calculate_destination_timeout();
2144 2144
2145 vp = kmalloc(nuvhubs * sizeof(struct uvhub_desc), GFP_KERNEL); 2145 vp = kmalloc_array(nuvhubs, sizeof(struct uvhub_desc), GFP_KERNEL);
2146 uvhub_descs = (struct uvhub_desc *)vp; 2146 uvhub_descs = (struct uvhub_desc *)vp;
2147 memset(uvhub_descs, 0, nuvhubs * sizeof(struct uvhub_desc)); 2147 memset(uvhub_descs, 0, nuvhubs * sizeof(struct uvhub_desc));
2148 uvhub_mask = kzalloc((nuvhubs+7)/8, GFP_KERNEL); 2148 uvhub_mask = kzalloc((nuvhubs+7)/8, GFP_KERNEL);
diff --git a/arch/x86/platform/uv/uv_time.c b/arch/x86/platform/uv/uv_time.c
index b082d71b08ee..a36b368eea08 100644
--- a/arch/x86/platform/uv/uv_time.c
+++ b/arch/x86/platform/uv/uv_time.c
@@ -158,7 +158,7 @@ static __init int uv_rtc_allocate_timers(void)
158{ 158{
159 int cpu; 159 int cpu;
160 160
161 blade_info = kzalloc(uv_possible_blades * sizeof(void *), GFP_KERNEL); 161 blade_info = kcalloc(uv_possible_blades, sizeof(void *), GFP_KERNEL);
162 if (!blade_info) 162 if (!blade_info)
163 return -ENOMEM; 163 return -ENOMEM;
164 164
diff --git a/block/bio.c b/block/bio.c
index db9a40e9a136..9710e275f230 100644
--- a/block/bio.c
+++ b/block/bio.c
@@ -2091,7 +2091,8 @@ static int __init init_bio(void)
2091{ 2091{
2092 bio_slab_max = 2; 2092 bio_slab_max = 2;
2093 bio_slab_nr = 0; 2093 bio_slab_nr = 0;
2094 bio_slabs = kzalloc(bio_slab_max * sizeof(struct bio_slab), GFP_KERNEL); 2094 bio_slabs = kcalloc(bio_slab_max, sizeof(struct bio_slab),
2095 GFP_KERNEL);
2095 if (!bio_slabs) 2096 if (!bio_slabs)
2096 panic("bio: can't allocate bios\n"); 2097 panic("bio: can't allocate bios\n");
2097 2098
diff --git a/block/blk-mq.c b/block/blk-mq.c
index d2de0a719ab8..e9da5e6a8526 100644
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -1903,7 +1903,7 @@ struct blk_mq_tags *blk_mq_alloc_rq_map(struct blk_mq_tag_set *set,
1903 if (!tags) 1903 if (!tags)
1904 return NULL; 1904 return NULL;
1905 1905
1906 tags->rqs = kzalloc_node(nr_tags * sizeof(struct request *), 1906 tags->rqs = kcalloc_node(nr_tags, sizeof(struct request *),
1907 GFP_NOIO | __GFP_NOWARN | __GFP_NORETRY, 1907 GFP_NOIO | __GFP_NOWARN | __GFP_NORETRY,
1908 node); 1908 node);
1909 if (!tags->rqs) { 1909 if (!tags->rqs) {
@@ -1911,9 +1911,9 @@ struct blk_mq_tags *blk_mq_alloc_rq_map(struct blk_mq_tag_set *set,
1911 return NULL; 1911 return NULL;
1912 } 1912 }
1913 1913
1914 tags->static_rqs = kzalloc_node(nr_tags * sizeof(struct request *), 1914 tags->static_rqs = kcalloc_node(nr_tags, sizeof(struct request *),
1915 GFP_NOIO | __GFP_NOWARN | __GFP_NORETRY, 1915 GFP_NOIO | __GFP_NOWARN | __GFP_NORETRY,
1916 node); 1916 node);
1917 if (!tags->static_rqs) { 1917 if (!tags->static_rqs) {
1918 kfree(tags->rqs); 1918 kfree(tags->rqs);
1919 blk_mq_free_tags(tags); 1919 blk_mq_free_tags(tags);
@@ -2522,7 +2522,7 @@ struct request_queue *blk_mq_init_allocated_queue(struct blk_mq_tag_set *set,
2522 /* init q->mq_kobj and sw queues' kobjects */ 2522 /* init q->mq_kobj and sw queues' kobjects */
2523 blk_mq_sysfs_init(q); 2523 blk_mq_sysfs_init(q);
2524 2524
2525 q->queue_hw_ctx = kzalloc_node(nr_cpu_ids * sizeof(*(q->queue_hw_ctx)), 2525 q->queue_hw_ctx = kcalloc_node(nr_cpu_ids, sizeof(*(q->queue_hw_ctx)),
2526 GFP_KERNEL, set->numa_node); 2526 GFP_KERNEL, set->numa_node);
2527 if (!q->queue_hw_ctx) 2527 if (!q->queue_hw_ctx)
2528 goto err_percpu; 2528 goto err_percpu;
@@ -2741,14 +2741,14 @@ int blk_mq_alloc_tag_set(struct blk_mq_tag_set *set)
2741 if (set->nr_hw_queues > nr_cpu_ids) 2741 if (set->nr_hw_queues > nr_cpu_ids)
2742 set->nr_hw_queues = nr_cpu_ids; 2742 set->nr_hw_queues = nr_cpu_ids;
2743 2743
2744 set->tags = kzalloc_node(nr_cpu_ids * sizeof(struct blk_mq_tags *), 2744 set->tags = kcalloc_node(nr_cpu_ids, sizeof(struct blk_mq_tags *),
2745 GFP_KERNEL, set->numa_node); 2745 GFP_KERNEL, set->numa_node);
2746 if (!set->tags) 2746 if (!set->tags)
2747 return -ENOMEM; 2747 return -ENOMEM;
2748 2748
2749 ret = -ENOMEM; 2749 ret = -ENOMEM;
2750 set->mq_map = kzalloc_node(sizeof(*set->mq_map) * nr_cpu_ids, 2750 set->mq_map = kcalloc_node(nr_cpu_ids, sizeof(*set->mq_map),
2751 GFP_KERNEL, set->numa_node); 2751 GFP_KERNEL, set->numa_node);
2752 if (!set->mq_map) 2752 if (!set->mq_map)
2753 goto out_free_tags; 2753 goto out_free_tags;
2754 2754
diff --git a/block/blk-tag.c b/block/blk-tag.c
index 09f19c6c52ce..24b20d86bcbc 100644
--- a/block/blk-tag.c
+++ b/block/blk-tag.c
@@ -99,12 +99,12 @@ init_tag_map(struct request_queue *q, struct blk_queue_tag *tags, int depth)
99 __func__, depth); 99 __func__, depth);
100 } 100 }
101 101
102 tag_index = kzalloc(depth * sizeof(struct request *), GFP_ATOMIC); 102 tag_index = kcalloc(depth, sizeof(struct request *), GFP_ATOMIC);
103 if (!tag_index) 103 if (!tag_index)
104 goto fail; 104 goto fail;
105 105
106 nr_ulongs = ALIGN(depth, BITS_PER_LONG) / BITS_PER_LONG; 106 nr_ulongs = ALIGN(depth, BITS_PER_LONG) / BITS_PER_LONG;
107 tag_map = kzalloc(nr_ulongs * sizeof(unsigned long), GFP_ATOMIC); 107 tag_map = kcalloc(nr_ulongs, sizeof(unsigned long), GFP_ATOMIC);
108 if (!tag_map) 108 if (!tag_map)
109 goto fail; 109 goto fail;
110 110
diff --git a/block/blk-zoned.c b/block/blk-zoned.c
index 3d08dc84db16..51000914e23f 100644
--- a/block/blk-zoned.c
+++ b/block/blk-zoned.c
@@ -331,8 +331,8 @@ int blkdev_report_zones_ioctl(struct block_device *bdev, fmode_t mode,
331 if (rep.nr_zones > INT_MAX / sizeof(struct blk_zone)) 331 if (rep.nr_zones > INT_MAX / sizeof(struct blk_zone))
332 return -ERANGE; 332 return -ERANGE;
333 333
334 zones = kvmalloc(rep.nr_zones * sizeof(struct blk_zone), 334 zones = kvmalloc_array(rep.nr_zones, sizeof(struct blk_zone),
335 GFP_KERNEL | __GFP_ZERO); 335 GFP_KERNEL | __GFP_ZERO);
336 if (!zones) 336 if (!zones)
337 return -ENOMEM; 337 return -ENOMEM;
338 338
diff --git a/block/partitions/check.c b/block/partitions/check.c
index 720145c49066..ffe408fead0c 100644
--- a/block/partitions/check.c
+++ b/block/partitions/check.c
@@ -122,7 +122,7 @@ static struct parsed_partitions *allocate_partitions(struct gendisk *hd)
122 return NULL; 122 return NULL;
123 123
124 nr = disk_max_parts(hd); 124 nr = disk_max_parts(hd);
125 state->parts = vzalloc(nr * sizeof(state->parts[0])); 125 state->parts = vzalloc(array_size(nr, sizeof(state->parts[0])));
126 if (!state->parts) { 126 if (!state->parts) {
127 kfree(state); 127 kfree(state);
128 return NULL; 128 return NULL;
diff --git a/block/partitions/ldm.c b/block/partitions/ldm.c
index 2a365c756648..0417937dfe99 100644
--- a/block/partitions/ldm.c
+++ b/block/partitions/ldm.c
@@ -378,7 +378,7 @@ static bool ldm_validate_tocblocks(struct parsed_partitions *state,
378 BUG_ON(!state || !ldb); 378 BUG_ON(!state || !ldb);
379 ph = &ldb->ph; 379 ph = &ldb->ph;
380 tb[0] = &ldb->toc; 380 tb[0] = &ldb->toc;
381 tb[1] = kmalloc(sizeof(*tb[1]) * 3, GFP_KERNEL); 381 tb[1] = kmalloc_array(3, sizeof(*tb[1]), GFP_KERNEL);
382 if (!tb[1]) { 382 if (!tb[1]) {
383 ldm_crit("Out of memory."); 383 ldm_crit("Out of memory.");
384 goto err; 384 goto err;
diff --git a/crypto/algif_aead.c b/crypto/algif_aead.c
index 330cf9f2b767..825524f27438 100644
--- a/crypto/algif_aead.c
+++ b/crypto/algif_aead.c
@@ -255,8 +255,8 @@ static int _aead_recvmsg(struct socket *sock, struct msghdr *msg,
255 processed - as); 255 processed - as);
256 if (!areq->tsgl_entries) 256 if (!areq->tsgl_entries)
257 areq->tsgl_entries = 1; 257 areq->tsgl_entries = 1;
258 areq->tsgl = sock_kmalloc(sk, sizeof(*areq->tsgl) * 258 areq->tsgl = sock_kmalloc(sk, array_size(sizeof(*areq->tsgl),
259 areq->tsgl_entries, 259 areq->tsgl_entries),
260 GFP_KERNEL); 260 GFP_KERNEL);
261 if (!areq->tsgl) { 261 if (!areq->tsgl) {
262 err = -ENOMEM; 262 err = -ENOMEM;
diff --git a/crypto/algif_skcipher.c b/crypto/algif_skcipher.c
index 15cf3c5222e0..4c04eb9888ad 100644
--- a/crypto/algif_skcipher.c
+++ b/crypto/algif_skcipher.c
@@ -100,7 +100,8 @@ static int _skcipher_recvmsg(struct socket *sock, struct msghdr *msg,
100 areq->tsgl_entries = af_alg_count_tsgl(sk, len, 0); 100 areq->tsgl_entries = af_alg_count_tsgl(sk, len, 0);
101 if (!areq->tsgl_entries) 101 if (!areq->tsgl_entries)
102 areq->tsgl_entries = 1; 102 areq->tsgl_entries = 1;
103 areq->tsgl = sock_kmalloc(sk, sizeof(*areq->tsgl) * areq->tsgl_entries, 103 areq->tsgl = sock_kmalloc(sk, array_size(sizeof(*areq->tsgl),
104 areq->tsgl_entries),
104 GFP_KERNEL); 105 GFP_KERNEL);
105 if (!areq->tsgl) { 106 if (!areq->tsgl) {
106 err = -ENOMEM; 107 err = -ENOMEM;
diff --git a/crypto/testmgr.c b/crypto/testmgr.c
index d1d99843cce4..11e45352fd0b 100644
--- a/crypto/testmgr.c
+++ b/crypto/testmgr.c
@@ -603,7 +603,8 @@ static int __test_aead(struct crypto_aead *tfm, int enc,
603 goto out_nooutbuf; 603 goto out_nooutbuf;
604 604
605 /* avoid "the frame size is larger than 1024 bytes" compiler warning */ 605 /* avoid "the frame size is larger than 1024 bytes" compiler warning */
606 sg = kmalloc(sizeof(*sg) * 8 * (diff_dst ? 4 : 2), GFP_KERNEL); 606 sg = kmalloc(array3_size(sizeof(*sg), 8, (diff_dst ? 4 : 2)),
607 GFP_KERNEL);
607 if (!sg) 608 if (!sg)
608 goto out_nosg; 609 goto out_nosg;
609 sgout = &sg[16]; 610 sgout = &sg[16];
diff --git a/drivers/acpi/acpi_platform.c b/drivers/acpi/acpi_platform.c
index 88cd949003f3..eaa60c94205a 100644
--- a/drivers/acpi/acpi_platform.c
+++ b/drivers/acpi/acpi_platform.c
@@ -82,7 +82,7 @@ struct platform_device *acpi_create_platform_device(struct acpi_device *adev,
82 if (count < 0) { 82 if (count < 0) {
83 return NULL; 83 return NULL;
84 } else if (count > 0) { 84 } else if (count > 0) {
85 resources = kzalloc(count * sizeof(struct resource), 85 resources = kcalloc(count, sizeof(struct resource),
86 GFP_KERNEL); 86 GFP_KERNEL);
87 if (!resources) { 87 if (!resources) {
88 dev_err(&adev->dev, "No memory for resources\n"); 88 dev_err(&adev->dev, "No memory for resources\n");
diff --git a/drivers/acpi/acpi_video.c b/drivers/acpi/acpi_video.c
index 2f2e737be0f8..f0b52266b3ac 100644
--- a/drivers/acpi/acpi_video.c
+++ b/drivers/acpi/acpi_video.c
@@ -832,8 +832,9 @@ int acpi_video_get_levels(struct acpi_device *device,
832 * in order to account for buggy BIOS which don't export the first two 832 * in order to account for buggy BIOS which don't export the first two
833 * special levels (see below) 833 * special levels (see below)
834 */ 834 */
835 br->levels = kmalloc((obj->package.count + ACPI_VIDEO_FIRST_LEVEL) * 835 br->levels = kmalloc_array(obj->package.count + ACPI_VIDEO_FIRST_LEVEL,
836 sizeof(*br->levels), GFP_KERNEL); 836 sizeof(*br->levels),
837 GFP_KERNEL);
837 if (!br->levels) { 838 if (!br->levels) {
838 result = -ENOMEM; 839 result = -ENOMEM;
839 goto out_free; 840 goto out_free;
diff --git a/drivers/acpi/apei/erst.c b/drivers/acpi/apei/erst.c
index 9bff853e85f3..3c5ea7cb693e 100644
--- a/drivers/acpi/apei/erst.c
+++ b/drivers/acpi/apei/erst.c
@@ -524,7 +524,8 @@ retry:
524 pr_warn(FW_WARN "too many record IDs!\n"); 524 pr_warn(FW_WARN "too many record IDs!\n");
525 return 0; 525 return 0;
526 } 526 }
527 new_entries = kvmalloc(new_size * sizeof(entries[0]), GFP_KERNEL); 527 new_entries = kvmalloc_array(new_size, sizeof(entries[0]),
528 GFP_KERNEL);
528 if (!new_entries) 529 if (!new_entries)
529 return -ENOMEM; 530 return -ENOMEM;
530 memcpy(new_entries, entries, 531 memcpy(new_entries, entries,
diff --git a/drivers/acpi/apei/hest.c b/drivers/acpi/apei/hest.c
index 9cb74115a43d..b1e9f81ebeea 100644
--- a/drivers/acpi/apei/hest.c
+++ b/drivers/acpi/apei/hest.c
@@ -195,7 +195,8 @@ static int __init hest_ghes_dev_register(unsigned int ghes_count)
195 struct ghes_arr ghes_arr; 195 struct ghes_arr ghes_arr;
196 196
197 ghes_arr.count = 0; 197 ghes_arr.count = 0;
198 ghes_arr.ghes_devs = kmalloc(sizeof(void *) * ghes_count, GFP_KERNEL); 198 ghes_arr.ghes_devs = kmalloc_array(ghes_count, sizeof(void *),
199 GFP_KERNEL);
199 if (!ghes_arr.ghes_devs) 200 if (!ghes_arr.ghes_devs)
200 return -ENOMEM; 201 return -ENOMEM;
201 202
diff --git a/drivers/acpi/fan.c b/drivers/acpi/fan.c
index 3563103590c6..fe0183d48dcd 100644
--- a/drivers/acpi/fan.c
+++ b/drivers/acpi/fan.c
@@ -298,8 +298,8 @@ static int acpi_fan_get_fps(struct acpi_device *device)
298 } 298 }
299 299
300 fan->fps_count = obj->package.count - 1; /* minus revision field */ 300 fan->fps_count = obj->package.count - 1; /* minus revision field */
301 fan->fps = devm_kzalloc(&device->dev, 301 fan->fps = devm_kcalloc(&device->dev,
302 fan->fps_count * sizeof(struct acpi_fan_fps), 302 fan->fps_count, sizeof(struct acpi_fan_fps),
303 GFP_KERNEL); 303 GFP_KERNEL);
304 if (!fan->fps) { 304 if (!fan->fps) {
305 dev_err(&device->dev, "Not enough memory\n"); 305 dev_err(&device->dev, "Not enough memory\n");
diff --git a/drivers/acpi/nfit/core.c b/drivers/acpi/nfit/core.c
index b87252bf4571..d15814e1727f 100644
--- a/drivers/acpi/nfit/core.c
+++ b/drivers/acpi/nfit/core.c
@@ -1082,9 +1082,10 @@ static int __nfit_mem_init(struct acpi_nfit_desc *acpi_desc,
1082 continue; 1082 continue;
1083 nfit_mem->nfit_flush = nfit_flush; 1083 nfit_mem->nfit_flush = nfit_flush;
1084 flush = nfit_flush->flush; 1084 flush = nfit_flush->flush;
1085 nfit_mem->flush_wpq = devm_kzalloc(acpi_desc->dev, 1085 nfit_mem->flush_wpq = devm_kcalloc(acpi_desc->dev,
1086 flush->hint_count 1086 flush->hint_count,
1087 * sizeof(struct resource), GFP_KERNEL); 1087 sizeof(struct resource),
1088 GFP_KERNEL);
1088 if (!nfit_mem->flush_wpq) 1089 if (!nfit_mem->flush_wpq)
1089 return -ENOMEM; 1090 return -ENOMEM;
1090 for (i = 0; i < flush->hint_count; i++) { 1091 for (i = 0; i < flush->hint_count; i++) {
diff --git a/drivers/acpi/processor_perflib.c b/drivers/acpi/processor_perflib.c
index a651ab3490d8..a303fd0e108c 100644
--- a/drivers/acpi/processor_perflib.c
+++ b/drivers/acpi/processor_perflib.c
@@ -343,8 +343,9 @@ static int acpi_processor_get_performance_states(struct acpi_processor *pr)
343 343
344 pr->performance->state_count = pss->package.count; 344 pr->performance->state_count = pss->package.count;
345 pr->performance->states = 345 pr->performance->states =
346 kmalloc(sizeof(struct acpi_processor_px) * pss->package.count, 346 kmalloc_array(pss->package.count,
347 GFP_KERNEL); 347 sizeof(struct acpi_processor_px),
348 GFP_KERNEL);
348 if (!pr->performance->states) { 349 if (!pr->performance->states) {
349 result = -ENOMEM; 350 result = -ENOMEM;
350 goto end; 351 goto end;
diff --git a/drivers/acpi/processor_throttling.c b/drivers/acpi/processor_throttling.c
index 7f9aff4b8d62..fbc936cf2025 100644
--- a/drivers/acpi/processor_throttling.c
+++ b/drivers/acpi/processor_throttling.c
@@ -534,8 +534,9 @@ static int acpi_processor_get_throttling_states(struct acpi_processor *pr)
534 534
535 pr->throttling.state_count = tss->package.count; 535 pr->throttling.state_count = tss->package.count;
536 pr->throttling.states_tss = 536 pr->throttling.states_tss =
537 kmalloc(sizeof(struct acpi_processor_tx_tss) * tss->package.count, 537 kmalloc_array(tss->package.count,
538 GFP_KERNEL); 538 sizeof(struct acpi_processor_tx_tss),
539 GFP_KERNEL);
539 if (!pr->throttling.states_tss) { 540 if (!pr->throttling.states_tss) {
540 result = -ENOMEM; 541 result = -ENOMEM;
541 goto end; 542 goto end;
diff --git a/drivers/acpi/sysfs.c b/drivers/acpi/sysfs.c
index 4fc59c3bc673..41324f0b1bee 100644
--- a/drivers/acpi/sysfs.c
+++ b/drivers/acpi/sysfs.c
@@ -857,12 +857,12 @@ void acpi_irq_stats_init(void)
857 num_gpes = acpi_current_gpe_count; 857 num_gpes = acpi_current_gpe_count;
858 num_counters = num_gpes + ACPI_NUM_FIXED_EVENTS + NUM_COUNTERS_EXTRA; 858 num_counters = num_gpes + ACPI_NUM_FIXED_EVENTS + NUM_COUNTERS_EXTRA;
859 859
860 all_attrs = kzalloc(sizeof(struct attribute *) * (num_counters + 1), 860 all_attrs = kcalloc(num_counters + 1, sizeof(struct attribute *),
861 GFP_KERNEL); 861 GFP_KERNEL);
862 if (all_attrs == NULL) 862 if (all_attrs == NULL)
863 return; 863 return;
864 864
865 all_counters = kzalloc(sizeof(struct event_counter) * (num_counters), 865 all_counters = kcalloc(num_counters, sizeof(struct event_counter),
866 GFP_KERNEL); 866 GFP_KERNEL);
867 if (all_counters == NULL) 867 if (all_counters == NULL)
868 goto fail; 868 goto fail;
@@ -871,7 +871,7 @@ void acpi_irq_stats_init(void)
871 if (ACPI_FAILURE(status)) 871 if (ACPI_FAILURE(status))
872 goto fail; 872 goto fail;
873 873
874 counter_attrs = kzalloc(sizeof(struct kobj_attribute) * (num_counters), 874 counter_attrs = kcalloc(num_counters, sizeof(struct kobj_attribute),
875 GFP_KERNEL); 875 GFP_KERNEL);
876 if (counter_attrs == NULL) 876 if (counter_attrs == NULL)
877 goto fail; 877 goto fail;
diff --git a/drivers/android/binder_alloc.c b/drivers/android/binder_alloc.c
index 4f382d51def1..2628806c64a2 100644
--- a/drivers/android/binder_alloc.c
+++ b/drivers/android/binder_alloc.c
@@ -692,8 +692,8 @@ int binder_alloc_mmap_handler(struct binder_alloc *alloc,
692 } 692 }
693 } 693 }
694#endif 694#endif
695 alloc->pages = kzalloc(sizeof(alloc->pages[0]) * 695 alloc->pages = kcalloc((vma->vm_end - vma->vm_start) / PAGE_SIZE,
696 ((vma->vm_end - vma->vm_start) / PAGE_SIZE), 696 sizeof(alloc->pages[0]),
697 GFP_KERNEL); 697 GFP_KERNEL);
698 if (alloc->pages == NULL) { 698 if (alloc->pages == NULL) {
699 ret = -ENOMEM; 699 ret = -ENOMEM;
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index c41b9eeabe7c..27d15ed7fa3d 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -6987,7 +6987,7 @@ static void __init ata_parse_force_param(void)
6987 if (*p == ',') 6987 if (*p == ',')
6988 size++; 6988 size++;
6989 6989
6990 ata_force_tbl = kzalloc(sizeof(ata_force_tbl[0]) * size, GFP_KERNEL); 6990 ata_force_tbl = kcalloc(size, sizeof(ata_force_tbl[0]), GFP_KERNEL);
6991 if (!ata_force_tbl) { 6991 if (!ata_force_tbl) {
6992 printk(KERN_WARNING "ata: failed to extend force table, " 6992 printk(KERN_WARNING "ata: failed to extend force table, "
6993 "libata.force ignored\n"); 6993 "libata.force ignored\n");
diff --git a/drivers/ata/libata-pmp.c b/drivers/ata/libata-pmp.c
index 85aa76116a30..2ae1799f4992 100644
--- a/drivers/ata/libata-pmp.c
+++ b/drivers/ata/libata-pmp.c
@@ -340,7 +340,7 @@ static int sata_pmp_init_links (struct ata_port *ap, int nr_ports)
340 int i, err; 340 int i, err;
341 341
342 if (!pmp_link) { 342 if (!pmp_link) {
343 pmp_link = kzalloc(sizeof(pmp_link[0]) * SATA_PMP_MAX_PORTS, 343 pmp_link = kcalloc(SATA_PMP_MAX_PORTS, sizeof(pmp_link[0]),
344 GFP_NOIO); 344 GFP_NOIO);
345 if (!pmp_link) 345 if (!pmp_link)
346 return -ENOMEM; 346 return -ENOMEM;
diff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c
index cddf96f6e431..73ba8e134ca9 100644
--- a/drivers/ata/sata_mv.c
+++ b/drivers/ata/sata_mv.c
@@ -4114,13 +4114,13 @@ static int mv_platform_probe(struct platform_device *pdev)
4114 4114
4115 if (!host || !hpriv) 4115 if (!host || !hpriv)
4116 return -ENOMEM; 4116 return -ENOMEM;
4117 hpriv->port_clks = devm_kzalloc(&pdev->dev, 4117 hpriv->port_clks = devm_kcalloc(&pdev->dev,
4118 sizeof(struct clk *) * n_ports, 4118 n_ports, sizeof(struct clk *),
4119 GFP_KERNEL); 4119 GFP_KERNEL);
4120 if (!hpriv->port_clks) 4120 if (!hpriv->port_clks)
4121 return -ENOMEM; 4121 return -ENOMEM;
4122 hpriv->port_phys = devm_kzalloc(&pdev->dev, 4122 hpriv->port_phys = devm_kcalloc(&pdev->dev,
4123 sizeof(struct phy *) * n_ports, 4123 n_ports, sizeof(struct phy *),
4124 GFP_KERNEL); 4124 GFP_KERNEL);
4125 if (!hpriv->port_phys) 4125 if (!hpriv->port_phys)
4126 return -ENOMEM; 4126 return -ENOMEM;
diff --git a/drivers/atm/fore200e.c b/drivers/atm/fore200e.c
index 6ebc4e4820fc..99a38115b0a8 100644
--- a/drivers/atm/fore200e.c
+++ b/drivers/atm/fore200e.c
@@ -2094,7 +2094,8 @@ static int fore200e_alloc_rx_buf(struct fore200e *fore200e)
2094 DPRINTK(2, "rx buffers %d / %d are being allocated\n", scheme, magn); 2094 DPRINTK(2, "rx buffers %d / %d are being allocated\n", scheme, magn);
2095 2095
2096 /* allocate the array of receive buffers */ 2096 /* allocate the array of receive buffers */
2097 buffer = bsq->buffer = kzalloc(nbr * sizeof(struct buffer), GFP_KERNEL); 2097 buffer = bsq->buffer = kcalloc(nbr, sizeof(struct buffer),
2098 GFP_KERNEL);
2098 2099
2099 if (buffer == NULL) 2100 if (buffer == NULL)
2100 return -ENOMEM; 2101 return -ENOMEM;
diff --git a/drivers/atm/iphase.c b/drivers/atm/iphase.c
index be076606d30e..ff81a576347e 100644
--- a/drivers/atm/iphase.c
+++ b/drivers/atm/iphase.c
@@ -1618,7 +1618,7 @@ static int rx_init(struct atm_dev *dev)
1618 skb_queue_head_init(&iadev->rx_dma_q); 1618 skb_queue_head_init(&iadev->rx_dma_q);
1619 iadev->rx_free_desc_qhead = NULL; 1619 iadev->rx_free_desc_qhead = NULL;
1620 1620
1621 iadev->rx_open = kzalloc(4 * iadev->num_vc, GFP_KERNEL); 1621 iadev->rx_open = kcalloc(4, iadev->num_vc, GFP_KERNEL);
1622 if (!iadev->rx_open) { 1622 if (!iadev->rx_open) {
1623 printk(KERN_ERR DEV_LABEL "itf %d couldn't get free page\n", 1623 printk(KERN_ERR DEV_LABEL "itf %d couldn't get free page\n",
1624 dev->number); 1624 dev->number);
diff --git a/drivers/atm/solos-pci.c b/drivers/atm/solos-pci.c
index 0df1a1c80b00..17283018269f 100644
--- a/drivers/atm/solos-pci.c
+++ b/drivers/atm/solos-pci.c
@@ -1291,7 +1291,8 @@ static int fpga_probe(struct pci_dev *dev, const struct pci_device_id *id)
1291 card->using_dma = 1; 1291 card->using_dma = 1;
1292 if (1) { /* All known FPGA versions so far */ 1292 if (1) { /* All known FPGA versions so far */
1293 card->dma_alignment = 3; 1293 card->dma_alignment = 3;
1294 card->dma_bounce = kmalloc(card->nr_ports * BUF_SIZE, GFP_KERNEL); 1294 card->dma_bounce = kmalloc_array(card->nr_ports,
1295 BUF_SIZE, GFP_KERNEL);
1295 if (!card->dma_bounce) { 1296 if (!card->dma_bounce) {
1296 dev_warn(&card->dev->dev, "Failed to allocate DMA bounce buffers\n"); 1297 dev_warn(&card->dev->dev, "Failed to allocate DMA bounce buffers\n");
1297 err = -ENOMEM; 1298 err = -ENOMEM;
diff --git a/drivers/auxdisplay/cfag12864b.c b/drivers/auxdisplay/cfag12864b.c
index 6bd2f65e116a..7eebae7e322c 100644
--- a/drivers/auxdisplay/cfag12864b.c
+++ b/drivers/auxdisplay/cfag12864b.c
@@ -333,8 +333,8 @@ static int __init cfag12864b_init(void)
333 goto none; 333 goto none;
334 } 334 }
335 335
336 cfag12864b_cache = kmalloc(sizeof(unsigned char) * 336 cfag12864b_cache = kmalloc(CFAG12864B_SIZE,
337 CFAG12864B_SIZE, GFP_KERNEL); 337 GFP_KERNEL);
338 if (cfag12864b_cache == NULL) { 338 if (cfag12864b_cache == NULL) {
339 printk(KERN_ERR CFAG12864B_NAME ": ERROR: " 339 printk(KERN_ERR CFAG12864B_NAME ": ERROR: "
340 "can't alloc cache buffer (%i bytes)\n", 340 "can't alloc cache buffer (%i bytes)\n",
diff --git a/drivers/base/firmware_loader/fallback.c b/drivers/base/firmware_loader/fallback.c
index b676a99c469c..7f732744f0d3 100644
--- a/drivers/base/firmware_loader/fallback.c
+++ b/drivers/base/firmware_loader/fallback.c
@@ -403,7 +403,7 @@ static int fw_realloc_pages(struct fw_sysfs *fw_sysfs, int min_size)
403 fw_priv->page_array_size * 2); 403 fw_priv->page_array_size * 2);
404 struct page **new_pages; 404 struct page **new_pages;
405 405
406 new_pages = vmalloc(new_array_size * sizeof(void *)); 406 new_pages = vmalloc(array_size(new_array_size, sizeof(void *)));
407 if (!new_pages) { 407 if (!new_pages) {
408 fw_load_abort(fw_sysfs); 408 fw_load_abort(fw_sysfs);
409 return -ENOMEM; 409 return -ENOMEM;
diff --git a/drivers/block/DAC960.c b/drivers/block/DAC960.c
index 6ca77d6047d6..f6518067aa7d 100644
--- a/drivers/block/DAC960.c
+++ b/drivers/block/DAC960.c
@@ -5719,8 +5719,8 @@ static bool DAC960_CheckStatusBuffer(DAC960_Controller_T *Controller,
5719 Controller->CombinedStatusBufferLength = NewStatusBufferLength; 5719 Controller->CombinedStatusBufferLength = NewStatusBufferLength;
5720 return true; 5720 return true;
5721 } 5721 }
5722 NewStatusBuffer = kmalloc(2 * Controller->CombinedStatusBufferLength, 5722 NewStatusBuffer = kmalloc_array(2, Controller->CombinedStatusBufferLength,
5723 GFP_ATOMIC); 5723 GFP_ATOMIC);
5724 if (NewStatusBuffer == NULL) 5724 if (NewStatusBuffer == NULL)
5725 { 5725 {
5726 DAC960_Warning("Unable to expand Combined Status Buffer - Truncating\n", 5726 DAC960_Warning("Unable to expand Combined Status Buffer - Truncating\n",
diff --git a/drivers/block/drbd/drbd_main.c b/drivers/block/drbd/drbd_main.c
index 7655d6133139..a80809bd3057 100644
--- a/drivers/block/drbd/drbd_main.c
+++ b/drivers/block/drbd/drbd_main.c
@@ -511,7 +511,8 @@ static void drbd_calc_cpu_mask(cpumask_var_t *cpu_mask)
511{ 511{
512 unsigned int *resources_per_cpu, min_index = ~0; 512 unsigned int *resources_per_cpu, min_index = ~0;
513 513
514 resources_per_cpu = kzalloc(nr_cpu_ids * sizeof(*resources_per_cpu), GFP_KERNEL); 514 resources_per_cpu = kcalloc(nr_cpu_ids, sizeof(*resources_per_cpu),
515 GFP_KERNEL);
515 if (resources_per_cpu) { 516 if (resources_per_cpu) {
516 struct drbd_resource *resource; 517 struct drbd_resource *resource;
517 unsigned int cpu, min = ~0; 518 unsigned int cpu, min = ~0;
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
index 21e6d1b3b393..d6b6f434fd4b 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -524,7 +524,8 @@ static int lo_rw_aio(struct loop_device *lo, struct loop_cmd *cmd,
524 524
525 __rq_for_each_bio(bio, rq) 525 __rq_for_each_bio(bio, rq)
526 segments += bio_segments(bio); 526 segments += bio_segments(bio);
527 bvec = kmalloc(sizeof(struct bio_vec) * segments, GFP_NOIO); 527 bvec = kmalloc_array(segments, sizeof(struct bio_vec),
528 GFP_NOIO);
528 if (!bvec) 529 if (!bvec)
529 return -EIO; 530 return -EIO;
530 cmd->bvec = bvec; 531 cmd->bvec = bvec;
diff --git a/drivers/block/null_blk.c b/drivers/block/null_blk.c
index 2bdadd7f1454..7948049f6c43 100644
--- a/drivers/block/null_blk.c
+++ b/drivers/block/null_blk.c
@@ -1575,12 +1575,12 @@ static int setup_commands(struct nullb_queue *nq)
1575 struct nullb_cmd *cmd; 1575 struct nullb_cmd *cmd;
1576 int i, tag_size; 1576 int i, tag_size;
1577 1577
1578 nq->cmds = kzalloc(nq->queue_depth * sizeof(*cmd), GFP_KERNEL); 1578 nq->cmds = kcalloc(nq->queue_depth, sizeof(*cmd), GFP_KERNEL);
1579 if (!nq->cmds) 1579 if (!nq->cmds)
1580 return -ENOMEM; 1580 return -ENOMEM;
1581 1581
1582 tag_size = ALIGN(nq->queue_depth, BITS_PER_LONG) / BITS_PER_LONG; 1582 tag_size = ALIGN(nq->queue_depth, BITS_PER_LONG) / BITS_PER_LONG;
1583 nq->tag_map = kzalloc(tag_size * sizeof(unsigned long), GFP_KERNEL); 1583 nq->tag_map = kcalloc(tag_size, sizeof(unsigned long), GFP_KERNEL);
1584 if (!nq->tag_map) { 1584 if (!nq->tag_map) {
1585 kfree(nq->cmds); 1585 kfree(nq->cmds);
1586 return -ENOMEM; 1586 return -ENOMEM;
@@ -1598,8 +1598,9 @@ static int setup_commands(struct nullb_queue *nq)
1598 1598
1599static int setup_queues(struct nullb *nullb) 1599static int setup_queues(struct nullb *nullb)
1600{ 1600{
1601 nullb->queues = kzalloc(nullb->dev->submit_queues * 1601 nullb->queues = kcalloc(nullb->dev->submit_queues,
1602 sizeof(struct nullb_queue), GFP_KERNEL); 1602 sizeof(struct nullb_queue),
1603 GFP_KERNEL);
1603 if (!nullb->queues) 1604 if (!nullb->queues)
1604 return -ENOMEM; 1605 return -ENOMEM;
1605 1606
diff --git a/drivers/block/ps3vram.c b/drivers/block/ps3vram.c
index 8fa4533a1249..1e3d5de9d838 100644
--- a/drivers/block/ps3vram.c
+++ b/drivers/block/ps3vram.c
@@ -407,8 +407,9 @@ static int ps3vram_cache_init(struct ps3_system_bus_device *dev)
407 407
408 priv->cache.page_count = CACHE_PAGE_COUNT; 408 priv->cache.page_count = CACHE_PAGE_COUNT;
409 priv->cache.page_size = CACHE_PAGE_SIZE; 409 priv->cache.page_size = CACHE_PAGE_SIZE;
410 priv->cache.tags = kzalloc(sizeof(struct ps3vram_tag) * 410 priv->cache.tags = kcalloc(CACHE_PAGE_COUNT,
411 CACHE_PAGE_COUNT, GFP_KERNEL); 411 sizeof(struct ps3vram_tag),
412 GFP_KERNEL);
412 if (!priv->cache.tags) 413 if (!priv->cache.tags)
413 return -ENOMEM; 414 return -ENOMEM;
414 415
diff --git a/drivers/block/rsxx/core.c b/drivers/block/rsxx/core.c
index 09537bee387f..b7d71914a32a 100644
--- a/drivers/block/rsxx/core.c
+++ b/drivers/block/rsxx/core.c
@@ -873,7 +873,8 @@ static int rsxx_pci_probe(struct pci_dev *dev,
873 dev_info(CARD_TO_DEV(card), 873 dev_info(CARD_TO_DEV(card),
874 "Failed reading the number of DMA targets\n"); 874 "Failed reading the number of DMA targets\n");
875 875
876 card->ctrl = kzalloc(card->n_targets * sizeof(*card->ctrl), GFP_KERNEL); 876 card->ctrl = kcalloc(card->n_targets, sizeof(*card->ctrl),
877 GFP_KERNEL);
877 if (!card->ctrl) { 878 if (!card->ctrl) {
878 st = -ENOMEM; 879 st = -ENOMEM;
879 goto failed_dma_setup; 880 goto failed_dma_setup;
diff --git a/drivers/block/rsxx/dma.c b/drivers/block/rsxx/dma.c
index beaccf197a5a..8fbc1bf6db3d 100644
--- a/drivers/block/rsxx/dma.c
+++ b/drivers/block/rsxx/dma.c
@@ -1038,7 +1038,7 @@ int rsxx_eeh_save_issued_dmas(struct rsxx_cardinfo *card)
1038 struct rsxx_dma *dma; 1038 struct rsxx_dma *dma;
1039 struct list_head *issued_dmas; 1039 struct list_head *issued_dmas;
1040 1040
1041 issued_dmas = kzalloc(sizeof(*issued_dmas) * card->n_targets, 1041 issued_dmas = kcalloc(card->n_targets, sizeof(*issued_dmas),
1042 GFP_KERNEL); 1042 GFP_KERNEL);
1043 if (!issued_dmas) 1043 if (!issued_dmas)
1044 return -ENOMEM; 1044 return -ENOMEM;
diff --git a/drivers/block/xen-blkback/xenbus.c b/drivers/block/xen-blkback/xenbus.c
index 66412eededda..a4bc74e72c39 100644
--- a/drivers/block/xen-blkback/xenbus.c
+++ b/drivers/block/xen-blkback/xenbus.c
@@ -139,7 +139,8 @@ static int xen_blkif_alloc_rings(struct xen_blkif *blkif)
139{ 139{
140 unsigned int r; 140 unsigned int r;
141 141
142 blkif->rings = kzalloc(blkif->nr_rings * sizeof(struct xen_blkif_ring), GFP_KERNEL); 142 blkif->rings = kcalloc(blkif->nr_rings, sizeof(struct xen_blkif_ring),
143 GFP_KERNEL);
143 if (!blkif->rings) 144 if (!blkif->rings)
144 return -ENOMEM; 145 return -ENOMEM;
145 146
diff --git a/drivers/block/xen-blkfront.c b/drivers/block/xen-blkfront.c
index ae00a82f350b..b5cedccb5d7d 100644
--- a/drivers/block/xen-blkfront.c
+++ b/drivers/block/xen-blkfront.c
@@ -1906,7 +1906,9 @@ static int negotiate_mq(struct blkfront_info *info)
1906 if (!info->nr_rings) 1906 if (!info->nr_rings)
1907 info->nr_rings = 1; 1907 info->nr_rings = 1;
1908 1908
1909 info->rinfo = kzalloc(sizeof(struct blkfront_ring_info) * info->nr_rings, GFP_KERNEL); 1909 info->rinfo = kcalloc(info->nr_rings,
1910 sizeof(struct blkfront_ring_info),
1911 GFP_KERNEL);
1910 if (!info->rinfo) { 1912 if (!info->rinfo) {
1911 xenbus_dev_fatal(info->xbdev, -ENOMEM, "allocating ring_info structure"); 1913 xenbus_dev_fatal(info->xbdev, -ENOMEM, "allocating ring_info structure");
1912 return -ENOMEM; 1914 return -ENOMEM;
@@ -2216,15 +2218,18 @@ static int blkfront_setup_indirect(struct blkfront_ring_info *rinfo)
2216 } 2218 }
2217 2219
2218 for (i = 0; i < BLK_RING_SIZE(info); i++) { 2220 for (i = 0; i < BLK_RING_SIZE(info); i++) {
2219 rinfo->shadow[i].grants_used = kzalloc( 2221 rinfo->shadow[i].grants_used =
2220 sizeof(rinfo->shadow[i].grants_used[0]) * grants, 2222 kcalloc(grants,
2221 GFP_NOIO); 2223 sizeof(rinfo->shadow[i].grants_used[0]),
2222 rinfo->shadow[i].sg = kzalloc(sizeof(rinfo->shadow[i].sg[0]) * psegs, GFP_NOIO);
2223 if (info->max_indirect_segments)
2224 rinfo->shadow[i].indirect_grants = kzalloc(
2225 sizeof(rinfo->shadow[i].indirect_grants[0]) *
2226 INDIRECT_GREFS(grants),
2227 GFP_NOIO); 2224 GFP_NOIO);
2225 rinfo->shadow[i].sg = kcalloc(psegs,
2226 sizeof(rinfo->shadow[i].sg[0]),
2227 GFP_NOIO);
2228 if (info->max_indirect_segments)
2229 rinfo->shadow[i].indirect_grants =
2230 kcalloc(INDIRECT_GREFS(grants),
2231 sizeof(rinfo->shadow[i].indirect_grants[0]),
2232 GFP_NOIO);
2228 if ((rinfo->shadow[i].grants_used == NULL) || 2233 if ((rinfo->shadow[i].grants_used == NULL) ||
2229 (rinfo->shadow[i].sg == NULL) || 2234 (rinfo->shadow[i].sg == NULL) ||
2230 (info->max_indirect_segments && 2235 (info->max_indirect_segments &&
diff --git a/drivers/block/z2ram.c b/drivers/block/z2ram.c
index 8f9130ab5887..d0c5bc4e0703 100644
--- a/drivers/block/z2ram.c
+++ b/drivers/block/z2ram.c
@@ -197,8 +197,9 @@ static int z2_open(struct block_device *bdev, fmode_t mode)
197 vaddr = (unsigned long)z_remap_nocache_nonser(paddr, size); 197 vaddr = (unsigned long)z_remap_nocache_nonser(paddr, size);
198#endif 198#endif
199 z2ram_map = 199 z2ram_map =
200 kmalloc((size/Z2RAM_CHUNKSIZE)*sizeof(z2ram_map[0]), 200 kmalloc_array(size / Z2RAM_CHUNKSIZE,
201 GFP_KERNEL); 201 sizeof(z2ram_map[0]),
202 GFP_KERNEL);
202 if ( z2ram_map == NULL ) 203 if ( z2ram_map == NULL )
203 { 204 {
204 printk( KERN_ERR DEVICE_NAME 205 printk( KERN_ERR DEVICE_NAME
diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c
index da51293e7c03..7436b2d27fa3 100644
--- a/drivers/block/zram/zram_drv.c
+++ b/drivers/block/zram/zram_drv.c
@@ -898,7 +898,7 @@ static bool zram_meta_alloc(struct zram *zram, u64 disksize)
898 size_t num_pages; 898 size_t num_pages;
899 899
900 num_pages = disksize >> PAGE_SHIFT; 900 num_pages = disksize >> PAGE_SHIFT;
901 zram->table = vzalloc(num_pages * sizeof(*zram->table)); 901 zram->table = vzalloc(array_size(num_pages, sizeof(*zram->table)));
902 if (!zram->table) 902 if (!zram->table)
903 return false; 903 return false;
904 904
diff --git a/drivers/bus/fsl-mc/fsl-mc-allocator.c b/drivers/bus/fsl-mc/fsl-mc-allocator.c
index fb1442b08962..e906ecfe23dd 100644
--- a/drivers/bus/fsl-mc/fsl-mc-allocator.c
+++ b/drivers/bus/fsl-mc/fsl-mc-allocator.c
@@ -354,8 +354,8 @@ int fsl_mc_populate_irq_pool(struct fsl_mc_bus *mc_bus,
354 if (error < 0) 354 if (error < 0)
355 return error; 355 return error;
356 356
357 irq_resources = devm_kzalloc(&mc_bus_dev->dev, 357 irq_resources = devm_kcalloc(&mc_bus_dev->dev,
358 sizeof(*irq_resources) * irq_count, 358 irq_count, sizeof(*irq_resources),
359 GFP_KERNEL); 359 GFP_KERNEL);
360 if (!irq_resources) { 360 if (!irq_resources) {
361 error = -ENOMEM; 361 error = -ENOMEM;
@@ -455,7 +455,7 @@ int __must_check fsl_mc_allocate_irqs(struct fsl_mc_device *mc_dev)
455 return -ENOSPC; 455 return -ENOSPC;
456 } 456 }
457 457
458 irqs = devm_kzalloc(&mc_dev->dev, irq_count * sizeof(irqs[0]), 458 irqs = devm_kcalloc(&mc_dev->dev, irq_count, sizeof(irqs[0]),
459 GFP_KERNEL); 459 GFP_KERNEL);
460 if (!irqs) 460 if (!irqs)
461 return -ENOMEM; 461 return -ENOMEM;
diff --git a/drivers/cdrom/cdrom.c b/drivers/cdrom/cdrom.c
index 9adc8c3eb0fa..a78b8e7085e9 100644
--- a/drivers/cdrom/cdrom.c
+++ b/drivers/cdrom/cdrom.c
@@ -2132,7 +2132,7 @@ static int cdrom_read_cdda_old(struct cdrom_device_info *cdi, __u8 __user *ubuf,
2132 */ 2132 */
2133 nr = nframes; 2133 nr = nframes;
2134 do { 2134 do {
2135 cgc.buffer = kmalloc(CD_FRAMESIZE_RAW * nr, GFP_KERNEL); 2135 cgc.buffer = kmalloc_array(nr, CD_FRAMESIZE_RAW, GFP_KERNEL);
2136 if (cgc.buffer) 2136 if (cgc.buffer)
2137 break; 2137 break;
2138 2138
diff --git a/drivers/char/agp/amd-k7-agp.c b/drivers/char/agp/amd-k7-agp.c
index b450544dcaf0..6914e4f0ce98 100644
--- a/drivers/char/agp/amd-k7-agp.c
+++ b/drivers/char/agp/amd-k7-agp.c
@@ -85,7 +85,8 @@ static int amd_create_gatt_pages(int nr_tables)
85 int retval = 0; 85 int retval = 0;
86 int i; 86 int i;
87 87
88 tables = kzalloc((nr_tables + 1) * sizeof(struct amd_page_map *),GFP_KERNEL); 88 tables = kcalloc(nr_tables + 1, sizeof(struct amd_page_map *),
89 GFP_KERNEL);
89 if (tables == NULL) 90 if (tables == NULL)
90 return -ENOMEM; 91 return -ENOMEM;
91 92
diff --git a/drivers/char/agp/ati-agp.c b/drivers/char/agp/ati-agp.c
index 88b4cbee4dac..20bf5f78a362 100644
--- a/drivers/char/agp/ati-agp.c
+++ b/drivers/char/agp/ati-agp.c
@@ -108,7 +108,8 @@ static int ati_create_gatt_pages(int nr_tables)
108 int retval = 0; 108 int retval = 0;
109 int i; 109 int i;
110 110
111 tables = kzalloc((nr_tables + 1) * sizeof(struct ati_page_map *),GFP_KERNEL); 111 tables = kcalloc(nr_tables + 1, sizeof(struct ati_page_map *),
112 GFP_KERNEL);
112 if (tables == NULL) 113 if (tables == NULL)
113 return -ENOMEM; 114 return -ENOMEM;
114 115
diff --git a/drivers/char/agp/compat_ioctl.c b/drivers/char/agp/compat_ioctl.c
index 2053f70ef66b..52ffe1706ce0 100644
--- a/drivers/char/agp/compat_ioctl.c
+++ b/drivers/char/agp/compat_ioctl.c
@@ -98,11 +98,15 @@ static int compat_agpioc_reserve_wrap(struct agp_file_private *priv, void __user
98 if (ureserve.seg_count >= 16384) 98 if (ureserve.seg_count >= 16384)
99 return -EINVAL; 99 return -EINVAL;
100 100
101 usegment = kmalloc(sizeof(*usegment) * ureserve.seg_count, GFP_KERNEL); 101 usegment = kmalloc_array(ureserve.seg_count,
102 sizeof(*usegment),
103 GFP_KERNEL);
102 if (!usegment) 104 if (!usegment)
103 return -ENOMEM; 105 return -ENOMEM;
104 106
105 ksegment = kmalloc(sizeof(*ksegment) * kreserve.seg_count, GFP_KERNEL); 107 ksegment = kmalloc_array(kreserve.seg_count,
108 sizeof(*ksegment),
109 GFP_KERNEL);
106 if (!ksegment) { 110 if (!ksegment) {
107 kfree(usegment); 111 kfree(usegment);
108 return -ENOMEM; 112 return -ENOMEM;
diff --git a/drivers/char/agp/isoch.c b/drivers/char/agp/isoch.c
index fc8e1bc3347d..31c374b1b91b 100644
--- a/drivers/char/agp/isoch.c
+++ b/drivers/char/agp/isoch.c
@@ -93,7 +93,8 @@ static int agp_3_5_isochronous_node_enable(struct agp_bridge_data *bridge,
93 * We'll work with an array of isoch_data's (one for each 93 * We'll work with an array of isoch_data's (one for each
94 * device in dev_list) throughout this function. 94 * device in dev_list) throughout this function.
95 */ 95 */
96 if ((master = kmalloc(ndevs * sizeof(*master), GFP_KERNEL)) == NULL) { 96 master = kmalloc_array(ndevs, sizeof(*master), GFP_KERNEL);
97 if (master == NULL) {
97 ret = -ENOMEM; 98 ret = -ENOMEM;
98 goto get_out; 99 goto get_out;
99 } 100 }
diff --git a/drivers/char/agp/sgi-agp.c b/drivers/char/agp/sgi-agp.c
index 3051c73bc383..e7d5bdc02d93 100644
--- a/drivers/char/agp/sgi-agp.c
+++ b/drivers/char/agp/sgi-agp.c
@@ -280,9 +280,9 @@ static int agp_sgi_init(void)
280 else 280 else
281 return 0; 281 return 0;
282 282
283 sgi_tioca_agp_bridges = kmalloc(tioca_gart_found * 283 sgi_tioca_agp_bridges = kmalloc_array(tioca_gart_found,
284 sizeof(struct agp_bridge_data *), 284 sizeof(struct agp_bridge_data *),
285 GFP_KERNEL); 285 GFP_KERNEL);
286 if (!sgi_tioca_agp_bridges) 286 if (!sgi_tioca_agp_bridges)
287 return -ENOMEM; 287 return -ENOMEM;
288 288
diff --git a/drivers/char/agp/sworks-agp.c b/drivers/char/agp/sworks-agp.c
index 4dbdd3bc9bb8..7729414100ff 100644
--- a/drivers/char/agp/sworks-agp.c
+++ b/drivers/char/agp/sworks-agp.c
@@ -96,7 +96,7 @@ static int serverworks_create_gatt_pages(int nr_tables)
96 int retval = 0; 96 int retval = 0;
97 int i; 97 int i;
98 98
99 tables = kzalloc((nr_tables + 1) * sizeof(struct serverworks_page_map *), 99 tables = kcalloc(nr_tables + 1, sizeof(struct serverworks_page_map *),
100 GFP_KERNEL); 100 GFP_KERNEL);
101 if (tables == NULL) 101 if (tables == NULL)
102 return -ENOMEM; 102 return -ENOMEM;
diff --git a/drivers/char/agp/uninorth-agp.c b/drivers/char/agp/uninorth-agp.c
index 79d8c84693a1..31fcd0430426 100644
--- a/drivers/char/agp/uninorth-agp.c
+++ b/drivers/char/agp/uninorth-agp.c
@@ -402,7 +402,9 @@ static int uninorth_create_gatt_table(struct agp_bridge_data *bridge)
402 if (table == NULL) 402 if (table == NULL)
403 return -ENOMEM; 403 return -ENOMEM;
404 404
405 uninorth_priv.pages_arr = kmalloc((1 << page_order) * sizeof(struct page*), GFP_KERNEL); 405 uninorth_priv.pages_arr = kmalloc_array(1 << page_order,
406 sizeof(struct page *),
407 GFP_KERNEL);
406 if (uninorth_priv.pages_arr == NULL) 408 if (uninorth_priv.pages_arr == NULL)
407 goto enomem; 409 goto enomem;
408 410
diff --git a/drivers/char/ipmi/ipmi_ssif.c b/drivers/char/ipmi/ipmi_ssif.c
index 22f634eb09fd..18e4650c233b 100644
--- a/drivers/char/ipmi/ipmi_ssif.c
+++ b/drivers/char/ipmi/ipmi_ssif.c
@@ -1757,7 +1757,8 @@ static unsigned short *ssif_address_list(void)
1757 list_for_each_entry(info, &ssif_infos, link) 1757 list_for_each_entry(info, &ssif_infos, link)
1758 count++; 1758 count++;
1759 1759
1760 address_list = kzalloc(sizeof(*address_list) * (count + 1), GFP_KERNEL); 1760 address_list = kcalloc(count + 1, sizeof(*address_list),
1761 GFP_KERNEL);
1761 if (!address_list) 1762 if (!address_list)
1762 return NULL; 1763 return NULL;
1763 1764
diff --git a/drivers/char/raw.c b/drivers/char/raw.c
index 293167c6e254..fd6eec8085b4 100644
--- a/drivers/char/raw.c
+++ b/drivers/char/raw.c
@@ -321,7 +321,8 @@ static int __init raw_init(void)
321 max_raw_minors = MAX_RAW_MINORS; 321 max_raw_minors = MAX_RAW_MINORS;
322 } 322 }
323 323
324 raw_devices = vzalloc(sizeof(struct raw_device_data) * max_raw_minors); 324 raw_devices = vzalloc(array_size(max_raw_minors,
325 sizeof(struct raw_device_data)));
325 if (!raw_devices) { 326 if (!raw_devices) {
326 printk(KERN_ERR "Not enough memory for raw device structures\n"); 327 printk(KERN_ERR "Not enough memory for raw device structures\n");
327 ret = -ENOMEM; 328 ret = -ENOMEM;
diff --git a/drivers/char/tpm/tpm2-cmd.c b/drivers/char/tpm/tpm2-cmd.c
index 96c77c8e7f40..d31b09099216 100644
--- a/drivers/char/tpm/tpm2-cmd.c
+++ b/drivers/char/tpm/tpm2-cmd.c
@@ -980,7 +980,7 @@ static int tpm2_get_cc_attrs_tbl(struct tpm_chip *chip)
980 goto out; 980 goto out;
981 } 981 }
982 982
983 chip->cc_attrs_tbl = devm_kzalloc(&chip->dev, 4 * nr_commands, 983 chip->cc_attrs_tbl = devm_kcalloc(&chip->dev, 4, nr_commands,
984 GFP_KERNEL); 984 GFP_KERNEL);
985 985
986 rc = tpm_buf_init(&buf, TPM2_ST_NO_SESSIONS, TPM2_CC_GET_CAPABILITY); 986 rc = tpm_buf_init(&buf, TPM2_ST_NO_SESSIONS, TPM2_CC_GET_CAPABILITY);
diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c
index 21085515814f..17084cfcf53e 100644
--- a/drivers/char/virtio_console.c
+++ b/drivers/char/virtio_console.c
@@ -433,8 +433,7 @@ static struct port_buffer *alloc_buf(struct virtio_device *vdev, size_t buf_size
433 * Allocate buffer and the sg list. The sg list array is allocated 433 * Allocate buffer and the sg list. The sg list array is allocated
434 * directly after the port_buffer struct. 434 * directly after the port_buffer struct.
435 */ 435 */
436 buf = kmalloc(sizeof(*buf) + sizeof(struct scatterlist) * pages, 436 buf = kmalloc(struct_size(buf, sg, pages), GFP_KERNEL);
437 GFP_KERNEL);
438 if (!buf) 437 if (!buf)
439 goto fail; 438 goto fail;
440 439
@@ -1892,13 +1891,14 @@ static int init_vqs(struct ports_device *portdev)
1892 nr_ports = portdev->max_nr_ports; 1891 nr_ports = portdev->max_nr_ports;
1893 nr_queues = use_multiport(portdev) ? (nr_ports + 1) * 2 : 2; 1892 nr_queues = use_multiport(portdev) ? (nr_ports + 1) * 2 : 2;
1894 1893
1895 vqs = kmalloc(nr_queues * sizeof(struct virtqueue *), GFP_KERNEL); 1894 vqs = kmalloc_array(nr_queues, sizeof(struct virtqueue *), GFP_KERNEL);
1896 io_callbacks = kmalloc(nr_queues * sizeof(vq_callback_t *), GFP_KERNEL); 1895 io_callbacks = kmalloc_array(nr_queues, sizeof(vq_callback_t *),
1897 io_names = kmalloc(nr_queues * sizeof(char *), GFP_KERNEL); 1896 GFP_KERNEL);
1898 portdev->in_vqs = kmalloc(nr_ports * sizeof(struct virtqueue *), 1897 io_names = kmalloc_array(nr_queues, sizeof(char *), GFP_KERNEL);
1899 GFP_KERNEL); 1898 portdev->in_vqs = kmalloc_array(nr_ports, sizeof(struct virtqueue *),
1900 portdev->out_vqs = kmalloc(nr_ports * sizeof(struct virtqueue *), 1899 GFP_KERNEL);
1901 GFP_KERNEL); 1900 portdev->out_vqs = kmalloc_array(nr_ports, sizeof(struct virtqueue *),
1901 GFP_KERNEL);
1902 if (!vqs || !io_callbacks || !io_names || !portdev->in_vqs || 1902 if (!vqs || !io_callbacks || !io_names || !portdev->in_vqs ||
1903 !portdev->out_vqs) { 1903 !portdev->out_vqs) {
1904 err = -ENOMEM; 1904 err = -ENOMEM;
diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c
index 9e0b2f2b48e7..7bef0666ae7e 100644
--- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c
@@ -734,7 +734,7 @@ static void bcm2835_pll_debug_init(struct clk_hw *hw,
734 const struct bcm2835_pll_data *data = pll->data; 734 const struct bcm2835_pll_data *data = pll->data;
735 struct debugfs_reg32 *regs; 735 struct debugfs_reg32 *regs;
736 736
737 regs = devm_kzalloc(cprman->dev, 7 * sizeof(*regs), GFP_KERNEL); 737 regs = devm_kcalloc(cprman->dev, 7, sizeof(*regs), GFP_KERNEL);
738 if (!regs) 738 if (!regs)
739 return; 739 return;
740 740
@@ -865,7 +865,7 @@ static void bcm2835_pll_divider_debug_init(struct clk_hw *hw,
865 const struct bcm2835_pll_divider_data *data = divider->data; 865 const struct bcm2835_pll_divider_data *data = divider->data;
866 struct debugfs_reg32 *regs; 866 struct debugfs_reg32 *regs;
867 867
868 regs = devm_kzalloc(cprman->dev, 7 * sizeof(*regs), GFP_KERNEL); 868 regs = devm_kcalloc(cprman->dev, 7, sizeof(*regs), GFP_KERNEL);
869 if (!regs) 869 if (!regs)
870 return; 870 return;
871 871
diff --git a/drivers/clk/renesas/clk-r8a7740.c b/drivers/clk/renesas/clk-r8a7740.c
index d074f8e982d0..a7a30d2eca41 100644
--- a/drivers/clk/renesas/clk-r8a7740.c
+++ b/drivers/clk/renesas/clk-r8a7740.c
@@ -161,7 +161,7 @@ static void __init r8a7740_cpg_clocks_init(struct device_node *np)
161 } 161 }
162 162
163 cpg = kzalloc(sizeof(*cpg), GFP_KERNEL); 163 cpg = kzalloc(sizeof(*cpg), GFP_KERNEL);
164 clks = kzalloc(num_clks * sizeof(*clks), GFP_KERNEL); 164 clks = kcalloc(num_clks, sizeof(*clks), GFP_KERNEL);
165 if (cpg == NULL || clks == NULL) { 165 if (cpg == NULL || clks == NULL) {
166 /* We're leaking memory on purpose, there's no point in cleaning 166 /* We're leaking memory on purpose, there's no point in cleaning
167 * up as the system won't boot anyway. 167 * 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 27fbfafaf2cd..5adcca4656c3 100644
--- a/drivers/clk/renesas/clk-r8a7779.c
+++ b/drivers/clk/renesas/clk-r8a7779.c
@@ -138,7 +138,7 @@ static void __init r8a7779_cpg_clocks_init(struct device_node *np)
138 } 138 }
139 139
140 cpg = kzalloc(sizeof(*cpg), GFP_KERNEL); 140 cpg = kzalloc(sizeof(*cpg), GFP_KERNEL);
141 clks = kzalloc(CPG_NUM_CLOCKS * sizeof(*clks), GFP_KERNEL); 141 clks = kcalloc(CPG_NUM_CLOCKS, sizeof(*clks), GFP_KERNEL);
142 if (cpg == NULL || clks == NULL) { 142 if (cpg == NULL || clks == NULL) {
143 /* We're leaking memory on purpose, there's no point in cleaning 143 /* We're leaking memory on purpose, there's no point in cleaning
144 * up as the system won't boot anyway. 144 * up as the system won't boot anyway.
diff --git a/drivers/clk/renesas/clk-rcar-gen2.c b/drivers/clk/renesas/clk-rcar-gen2.c
index ee32a022e6da..bccd62f2cb09 100644
--- a/drivers/clk/renesas/clk-rcar-gen2.c
+++ b/drivers/clk/renesas/clk-rcar-gen2.c
@@ -417,7 +417,7 @@ static void __init rcar_gen2_cpg_clocks_init(struct device_node *np)
417 } 417 }
418 418
419 cpg = kzalloc(sizeof(*cpg), GFP_KERNEL); 419 cpg = kzalloc(sizeof(*cpg), GFP_KERNEL);
420 clks = kzalloc(num_clks * sizeof(*clks), GFP_KERNEL); 420 clks = kcalloc(num_clks, sizeof(*clks), GFP_KERNEL);
421 if (cpg == NULL || clks == NULL) { 421 if (cpg == NULL || clks == NULL) {
422 /* We're leaking memory on purpose, there's no point in cleaning 422 /* We're leaking memory on purpose, there's no point in cleaning
423 * up as the system won't boot anyway. 423 * 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 67dd712aa723..ac2f86d626b6 100644
--- a/drivers/clk/renesas/clk-rz.c
+++ b/drivers/clk/renesas/clk-rz.c
@@ -97,7 +97,7 @@ static void __init rz_cpg_clocks_init(struct device_node *np)
97 return; 97 return;
98 98
99 cpg = kzalloc(sizeof(*cpg), GFP_KERNEL); 99 cpg = kzalloc(sizeof(*cpg), GFP_KERNEL);
100 clks = kzalloc(num_clks * sizeof(*clks), GFP_KERNEL); 100 clks = kcalloc(num_clks, sizeof(*clks), GFP_KERNEL);
101 BUG_ON(!cpg || !clks); 101 BUG_ON(!cpg || !clks);
102 102
103 cpg->data.clks = clks; 103 cpg->data.clks = clks;
diff --git a/drivers/clk/st/clkgen-fsyn.c b/drivers/clk/st/clkgen-fsyn.c
index 14819d919df1..a79d81985c4e 100644
--- a/drivers/clk/st/clkgen-fsyn.c
+++ b/drivers/clk/st/clkgen-fsyn.c
@@ -874,7 +874,7 @@ static void __init st_of_create_quadfs_fsynths(
874 return; 874 return;
875 875
876 clk_data->clk_num = QUADFS_MAX_CHAN; 876 clk_data->clk_num = QUADFS_MAX_CHAN;
877 clk_data->clks = kzalloc(QUADFS_MAX_CHAN * sizeof(struct clk *), 877 clk_data->clks = kcalloc(QUADFS_MAX_CHAN, sizeof(struct clk *),
878 GFP_KERNEL); 878 GFP_KERNEL);
879 879
880 if (!clk_data->clks) { 880 if (!clk_data->clks) {
diff --git a/drivers/clk/st/clkgen-pll.c b/drivers/clk/st/clkgen-pll.c
index 25bda48a5d35..7a7106dc80bf 100644
--- a/drivers/clk/st/clkgen-pll.c
+++ b/drivers/clk/st/clkgen-pll.c
@@ -738,7 +738,7 @@ static void __init clkgen_c32_pll_setup(struct device_node *np,
738 return; 738 return;
739 739
740 clk_data->clk_num = num_odfs; 740 clk_data->clk_num = num_odfs;
741 clk_data->clks = kzalloc(clk_data->clk_num * sizeof(struct clk *), 741 clk_data->clks = kcalloc(clk_data->clk_num, sizeof(struct clk *),
742 GFP_KERNEL); 742 GFP_KERNEL);
743 743
744 if (!clk_data->clks) 744 if (!clk_data->clks)
diff --git a/drivers/clk/sunxi/clk-usb.c b/drivers/clk/sunxi/clk-usb.c
index fe0c3d169377..917fc27a33dd 100644
--- a/drivers/clk/sunxi/clk-usb.c
+++ b/drivers/clk/sunxi/clk-usb.c
@@ -122,7 +122,7 @@ static void __init sunxi_usb_clk_setup(struct device_node *node,
122 if (!clk_data) 122 if (!clk_data)
123 return; 123 return;
124 124
125 clk_data->clks = kzalloc((qty+1) * sizeof(struct clk *), GFP_KERNEL); 125 clk_data->clks = kcalloc(qty + 1, sizeof(struct clk *), GFP_KERNEL);
126 if (!clk_data->clks) { 126 if (!clk_data->clks) {
127 kfree(clk_data); 127 kfree(clk_data);
128 return; 128 return;
diff --git a/drivers/clk/tegra/clk.c b/drivers/clk/tegra/clk.c
index 593d76a114f9..ffaf17f71860 100644
--- a/drivers/clk/tegra/clk.c
+++ b/drivers/clk/tegra/clk.c
@@ -216,14 +216,15 @@ struct clk ** __init tegra_clk_init(void __iomem *regs, int num, int banks)
216 if (WARN_ON(banks > ARRAY_SIZE(periph_regs))) 216 if (WARN_ON(banks > ARRAY_SIZE(periph_regs)))
217 return NULL; 217 return NULL;
218 218
219 periph_clk_enb_refcnt = kzalloc(32 * banks * 219 periph_clk_enb_refcnt = kcalloc(32 * banks,
220 sizeof(*periph_clk_enb_refcnt), GFP_KERNEL); 220 sizeof(*periph_clk_enb_refcnt),
221 GFP_KERNEL);
221 if (!periph_clk_enb_refcnt) 222 if (!periph_clk_enb_refcnt)
222 return NULL; 223 return NULL;
223 224
224 periph_banks = banks; 225 periph_banks = banks;
225 226
226 clks = kzalloc(num * sizeof(struct clk *), GFP_KERNEL); 227 clks = kcalloc(num, sizeof(struct clk *), GFP_KERNEL);
227 if (!clks) 228 if (!clks)
228 kfree(periph_clk_enb_refcnt); 229 kfree(periph_clk_enb_refcnt);
229 230
diff --git a/drivers/clk/ti/adpll.c b/drivers/clk/ti/adpll.c
index d6036c788fab..688e403333b9 100644
--- a/drivers/clk/ti/adpll.c
+++ b/drivers/clk/ti/adpll.c
@@ -501,8 +501,9 @@ static int ti_adpll_init_dco(struct ti_adpll_data *d)
501 const char *postfix; 501 const char *postfix;
502 int width, err; 502 int width, err;
503 503
504 d->outputs.clks = devm_kzalloc(d->dev, sizeof(struct clk *) * 504 d->outputs.clks = devm_kcalloc(d->dev,
505 MAX_ADPLL_OUTPUTS, 505 MAX_ADPLL_OUTPUTS,
506 sizeof(struct clk *),
506 GFP_KERNEL); 507 GFP_KERNEL);
507 if (!d->outputs.clks) 508 if (!d->outputs.clks)
508 return -ENOMEM; 509 return -ENOMEM;
@@ -915,8 +916,9 @@ static int ti_adpll_probe(struct platform_device *pdev)
915 if (err) 916 if (err)
916 return err; 917 return err;
917 918
918 d->clocks = devm_kzalloc(d->dev, sizeof(struct ti_adpll_clock) * 919 d->clocks = devm_kcalloc(d->dev,
919 TI_ADPLL_NR_CLOCKS, 920 TI_ADPLL_NR_CLOCKS,
921 sizeof(struct ti_adpll_clock),
920 GFP_KERNEL); 922 GFP_KERNEL);
921 if (!d->clocks) 923 if (!d->clocks)
922 return -ENOMEM; 924 return -ENOMEM;
diff --git a/drivers/clk/ti/apll.c b/drivers/clk/ti/apll.c
index 9498e9363b57..61c126a5d26a 100644
--- a/drivers/clk/ti/apll.c
+++ b/drivers/clk/ti/apll.c
@@ -206,7 +206,7 @@ static void __init of_dra7_apll_setup(struct device_node *node)
206 goto cleanup; 206 goto cleanup;
207 } 207 }
208 208
209 parent_names = kzalloc(sizeof(char *) * init->num_parents, GFP_KERNEL); 209 parent_names = kcalloc(init->num_parents, sizeof(char *), GFP_KERNEL);
210 if (!parent_names) 210 if (!parent_names)
211 goto cleanup; 211 goto cleanup;
212 212
diff --git a/drivers/clk/ti/divider.c b/drivers/clk/ti/divider.c
index aaa277dd6d99..ccfb4d9a152a 100644
--- a/drivers/clk/ti/divider.c
+++ b/drivers/clk/ti/divider.c
@@ -366,7 +366,7 @@ int ti_clk_parse_divider_data(int *div_table, int num_dividers, int max_div,
366 366
367 num_dividers = i; 367 num_dividers = i;
368 368
369 tmp = kzalloc(sizeof(*tmp) * (valid_div + 1), GFP_KERNEL); 369 tmp = kcalloc(valid_div + 1, sizeof(*tmp), GFP_KERNEL);
370 if (!tmp) 370 if (!tmp)
371 return -ENOMEM; 371 return -ENOMEM;
372 372
@@ -496,7 +496,7 @@ __init ti_clk_get_div_table(struct device_node *node)
496 return ERR_PTR(-EINVAL); 496 return ERR_PTR(-EINVAL);
497 } 497 }
498 498
499 table = kzalloc(sizeof(*table) * (valid_div + 1), GFP_KERNEL); 499 table = kcalloc(valid_div + 1, sizeof(*table), GFP_KERNEL);
500 500
501 if (!table) 501 if (!table)
502 return ERR_PTR(-ENOMEM); 502 return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/ti/dpll.c b/drivers/clk/ti/dpll.c
index 7d33ca9042cb..dc86d07d0921 100644
--- a/drivers/clk/ti/dpll.c
+++ b/drivers/clk/ti/dpll.c
@@ -309,7 +309,7 @@ static void __init of_ti_dpll_setup(struct device_node *node,
309 goto cleanup; 309 goto cleanup;
310 } 310 }
311 311
312 parent_names = kzalloc(sizeof(char *) * init->num_parents, GFP_KERNEL); 312 parent_names = kcalloc(init->num_parents, sizeof(char *), GFP_KERNEL);
313 if (!parent_names) 313 if (!parent_names)
314 goto cleanup; 314 goto cleanup;
315 315
diff --git a/drivers/clocksource/sh_cmt.c b/drivers/clocksource/sh_cmt.c
index 70b3cf8e23d0..bbbf37c471a3 100644
--- a/drivers/clocksource/sh_cmt.c
+++ b/drivers/clocksource/sh_cmt.c
@@ -1000,7 +1000,7 @@ static int sh_cmt_setup(struct sh_cmt_device *cmt, struct platform_device *pdev)
1000 1000
1001 /* Allocate and setup the channels. */ 1001 /* Allocate and setup the channels. */
1002 cmt->num_channels = hweight8(cmt->hw_channels); 1002 cmt->num_channels = hweight8(cmt->hw_channels);
1003 cmt->channels = kzalloc(cmt->num_channels * sizeof(*cmt->channels), 1003 cmt->channels = kcalloc(cmt->num_channels, sizeof(*cmt->channels),
1004 GFP_KERNEL); 1004 GFP_KERNEL);
1005 if (cmt->channels == NULL) { 1005 if (cmt->channels == NULL) {
1006 ret = -ENOMEM; 1006 ret = -ENOMEM;
diff --git a/drivers/clocksource/sh_mtu2.c b/drivers/clocksource/sh_mtu2.c
index 53aa7e92a7d7..6812e099b6a3 100644
--- a/drivers/clocksource/sh_mtu2.c
+++ b/drivers/clocksource/sh_mtu2.c
@@ -418,7 +418,7 @@ static int sh_mtu2_setup(struct sh_mtu2_device *mtu,
418 /* Allocate and setup the channels. */ 418 /* Allocate and setup the channels. */
419 mtu->num_channels = 3; 419 mtu->num_channels = 3;
420 420
421 mtu->channels = kzalloc(sizeof(*mtu->channels) * mtu->num_channels, 421 mtu->channels = kcalloc(mtu->num_channels, sizeof(*mtu->channels),
422 GFP_KERNEL); 422 GFP_KERNEL);
423 if (mtu->channels == NULL) { 423 if (mtu->channels == NULL) {
424 ret = -ENOMEM; 424 ret = -ENOMEM;
diff --git a/drivers/clocksource/sh_tmu.c b/drivers/clocksource/sh_tmu.c
index 31d881621e41..c74a6c543ca2 100644
--- a/drivers/clocksource/sh_tmu.c
+++ b/drivers/clocksource/sh_tmu.c
@@ -569,7 +569,7 @@ static int sh_tmu_setup(struct sh_tmu_device *tmu, struct platform_device *pdev)
569 } 569 }
570 570
571 /* Allocate and setup the channels. */ 571 /* Allocate and setup the channels. */
572 tmu->channels = kzalloc(sizeof(*tmu->channels) * tmu->num_channels, 572 tmu->channels = kcalloc(tmu->num_channels, sizeof(*tmu->channels),
573 GFP_KERNEL); 573 GFP_KERNEL);
574 if (tmu->channels == NULL) { 574 if (tmu->channels == NULL) {
575 ret = -ENOMEM; 575 ret = -ENOMEM;
diff --git a/drivers/cpufreq/acpi-cpufreq.c b/drivers/cpufreq/acpi-cpufreq.c
index 9449657d72f0..8ff1c9123834 100644
--- a/drivers/cpufreq/acpi-cpufreq.c
+++ b/drivers/cpufreq/acpi-cpufreq.c
@@ -759,8 +759,8 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
759 goto err_unreg; 759 goto err_unreg;
760 } 760 }
761 761
762 freq_table = kzalloc(sizeof(*freq_table) * 762 freq_table = kcalloc(perf->state_count + 1, sizeof(*freq_table),
763 (perf->state_count+1), GFP_KERNEL); 763 GFP_KERNEL);
764 if (!freq_table) { 764 if (!freq_table) {
765 result = -ENOMEM; 765 result = -ENOMEM;
766 goto err_unreg; 766 goto err_unreg;
diff --git a/drivers/cpufreq/arm_big_little.c b/drivers/cpufreq/arm_big_little.c
index 1d7ef5fc1977..cf62a1f64dd7 100644
--- a/drivers/cpufreq/arm_big_little.c
+++ b/drivers/cpufreq/arm_big_little.c
@@ -280,7 +280,7 @@ static int merge_cluster_tables(void)
280 for (i = 0; i < MAX_CLUSTERS; i++) 280 for (i = 0; i < MAX_CLUSTERS; i++)
281 count += get_table_count(freq_table[i]); 281 count += get_table_count(freq_table[i]);
282 282
283 table = kzalloc(sizeof(*table) * count, GFP_KERNEL); 283 table = kcalloc(count, sizeof(*table), GFP_KERNEL);
284 if (!table) 284 if (!table)
285 return -ENOMEM; 285 return -ENOMEM;
286 286
diff --git a/drivers/cpufreq/bmips-cpufreq.c b/drivers/cpufreq/bmips-cpufreq.c
index 1653151b77df..56a4ebbf00e0 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)
71 71
72 cpu_freq = htp_freq_to_cpu_freq(priv->clk_mult); 72 cpu_freq = htp_freq_to_cpu_freq(priv->clk_mult);
73 73
74 table = kmalloc((priv->max_freqs + 1) * sizeof(*table), GFP_KERNEL); 74 table = kmalloc_array(priv->max_freqs + 1, sizeof(*table), GFP_KERNEL);
75 if (!table) 75 if (!table)
76 return ERR_PTR(-ENOMEM); 76 return ERR_PTR(-ENOMEM);
77 77
diff --git a/drivers/cpufreq/brcmstb-avs-cpufreq.c b/drivers/cpufreq/brcmstb-avs-cpufreq.c
index b07559b9ed99..e6f9cbe5835f 100644
--- a/drivers/cpufreq/brcmstb-avs-cpufreq.c
+++ b/drivers/cpufreq/brcmstb-avs-cpufreq.c
@@ -410,7 +410,7 @@ brcm_avs_get_freq_table(struct device *dev, struct private_data *priv)
410 if (ret) 410 if (ret)
411 return ERR_PTR(ret); 411 return ERR_PTR(ret);
412 412
413 table = devm_kzalloc(dev, (AVS_PSTATE_MAX + 1) * sizeof(*table), 413 table = devm_kcalloc(dev, AVS_PSTATE_MAX + 1, sizeof(*table),
414 GFP_KERNEL); 414 GFP_KERNEL);
415 if (!table) 415 if (!table)
416 return ERR_PTR(-ENOMEM); 416 return ERR_PTR(-ENOMEM);
diff --git a/drivers/cpufreq/cppc_cpufreq.c b/drivers/cpufreq/cppc_cpufreq.c
index 3464580ac3ca..a9d3eec32795 100644
--- a/drivers/cpufreq/cppc_cpufreq.c
+++ b/drivers/cpufreq/cppc_cpufreq.c
@@ -313,7 +313,8 @@ static int __init cppc_cpufreq_init(void)
313 if (acpi_disabled) 313 if (acpi_disabled)
314 return -ENODEV; 314 return -ENODEV;
315 315
316 all_cpu_data = kzalloc(sizeof(void *) * num_possible_cpus(), GFP_KERNEL); 316 all_cpu_data = kcalloc(num_possible_cpus(), sizeof(void *),
317 GFP_KERNEL);
317 if (!all_cpu_data) 318 if (!all_cpu_data)
318 return -ENOMEM; 319 return -ENOMEM;
319 320
diff --git a/drivers/cpufreq/ia64-acpi-cpufreq.c b/drivers/cpufreq/ia64-acpi-cpufreq.c
index 7974a2fdb760..dd5440d3372d 100644
--- a/drivers/cpufreq/ia64-acpi-cpufreq.c
+++ b/drivers/cpufreq/ia64-acpi-cpufreq.c
@@ -241,8 +241,8 @@ acpi_cpufreq_cpu_init (
241 } 241 }
242 242
243 /* alloc freq_table */ 243 /* alloc freq_table */
244 freq_table = kzalloc(sizeof(*freq_table) * 244 freq_table = kcalloc(data->acpi_data.state_count + 1,
245 (data->acpi_data.state_count + 1), 245 sizeof(*freq_table),
246 GFP_KERNEL); 246 GFP_KERNEL);
247 if (!freq_table) { 247 if (!freq_table) {
248 result = -ENOMEM; 248 result = -ENOMEM;
diff --git a/drivers/cpufreq/imx6q-cpufreq.c b/drivers/cpufreq/imx6q-cpufreq.c
index 83cf631fc9bc..70912104a199 100644
--- a/drivers/cpufreq/imx6q-cpufreq.c
+++ b/drivers/cpufreq/imx6q-cpufreq.c
@@ -377,7 +377,8 @@ static int imx6q_cpufreq_probe(struct platform_device *pdev)
377 } 377 }
378 378
379 /* Make imx6_soc_volt array's size same as arm opp number */ 379 /* Make imx6_soc_volt array's size same as arm opp number */
380 imx6_soc_volt = devm_kzalloc(cpu_dev, sizeof(*imx6_soc_volt) * num, GFP_KERNEL); 380 imx6_soc_volt = devm_kcalloc(cpu_dev, num, sizeof(*imx6_soc_volt),
381 GFP_KERNEL);
381 if (imx6_soc_volt == NULL) { 382 if (imx6_soc_volt == NULL) {
382 ret = -ENOMEM; 383 ret = -ENOMEM;
383 goto free_freq_table; 384 goto free_freq_table;
diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
index 08960a55eb27..b6575408f279 100644
--- a/drivers/cpufreq/intel_pstate.c
+++ b/drivers/cpufreq/intel_pstate.c
@@ -2339,7 +2339,7 @@ hwp_cpu_matched:
2339 2339
2340 pr_info("Intel P-state driver initializing\n"); 2340 pr_info("Intel P-state driver initializing\n");
2341 2341
2342 all_cpu_data = vzalloc(sizeof(void *) * num_possible_cpus()); 2342 all_cpu_data = vzalloc(array_size(sizeof(void *), num_possible_cpus()));
2343 if (!all_cpu_data) 2343 if (!all_cpu_data)
2344 return -ENOMEM; 2344 return -ENOMEM;
2345 2345
diff --git a/drivers/cpufreq/longhaul.c b/drivers/cpufreq/longhaul.c
index 61a4c5b08219..279bd9e9fa95 100644
--- a/drivers/cpufreq/longhaul.c
+++ b/drivers/cpufreq/longhaul.c
@@ -474,8 +474,8 @@ static int longhaul_get_ranges(void)
474 return -EINVAL; 474 return -EINVAL;
475 } 475 }
476 476
477 longhaul_table = kzalloc((numscales + 1) * sizeof(*longhaul_table), 477 longhaul_table = kcalloc(numscales + 1, sizeof(*longhaul_table),
478 GFP_KERNEL); 478 GFP_KERNEL);
479 if (!longhaul_table) 479 if (!longhaul_table)
480 return -ENOMEM; 480 return -ENOMEM;
481 481
diff --git a/drivers/cpufreq/pxa3xx-cpufreq.c b/drivers/cpufreq/pxa3xx-cpufreq.c
index 7acc7fa4536d..9daa2cc318bb 100644
--- a/drivers/cpufreq/pxa3xx-cpufreq.c
+++ b/drivers/cpufreq/pxa3xx-cpufreq.c
@@ -93,7 +93,7 @@ static int setup_freqs_table(struct cpufreq_policy *policy,
93 struct cpufreq_frequency_table *table; 93 struct cpufreq_frequency_table *table;
94 int i; 94 int i;
95 95
96 table = kzalloc((num + 1) * sizeof(*table), GFP_KERNEL); 96 table = kcalloc(num + 1, sizeof(*table), GFP_KERNEL);
97 if (table == NULL) 97 if (table == NULL)
98 return -ENOMEM; 98 return -ENOMEM;
99 99
diff --git a/drivers/cpufreq/s3c24xx-cpufreq.c b/drivers/cpufreq/s3c24xx-cpufreq.c
index 909bd6e27639..3b291a2b0cb3 100644
--- a/drivers/cpufreq/s3c24xx-cpufreq.c
+++ b/drivers/cpufreq/s3c24xx-cpufreq.c
@@ -562,7 +562,7 @@ static int s3c_cpufreq_build_freq(void)
562 size = cpu_cur.info->calc_freqtable(&cpu_cur, NULL, 0); 562 size = cpu_cur.info->calc_freqtable(&cpu_cur, NULL, 0);
563 size++; 563 size++;
564 564
565 ftab = kzalloc(sizeof(*ftab) * size, GFP_KERNEL); 565 ftab = kcalloc(size, sizeof(*ftab), GFP_KERNEL);
566 if (!ftab) 566 if (!ftab)
567 return -ENOMEM; 567 return -ENOMEM;
568 568
diff --git a/drivers/cpufreq/sfi-cpufreq.c b/drivers/cpufreq/sfi-cpufreq.c
index 9767afe05da2..978770432b13 100644
--- a/drivers/cpufreq/sfi-cpufreq.c
+++ b/drivers/cpufreq/sfi-cpufreq.c
@@ -95,8 +95,8 @@ static int __init sfi_cpufreq_init(void)
95 if (ret) 95 if (ret)
96 return ret; 96 return ret;
97 97
98 freq_table = kzalloc(sizeof(*freq_table) * 98 freq_table = kcalloc(num_freq_table_entries + 1, sizeof(*freq_table),
99 (num_freq_table_entries + 1), GFP_KERNEL); 99 GFP_KERNEL);
100 if (!freq_table) { 100 if (!freq_table) {
101 ret = -ENOMEM; 101 ret = -ENOMEM;
102 goto err_free_array; 102 goto err_free_array;
diff --git a/drivers/cpufreq/spear-cpufreq.c b/drivers/cpufreq/spear-cpufreq.c
index 195f27f9c1cb..4074e2615522 100644
--- a/drivers/cpufreq/spear-cpufreq.c
+++ b/drivers/cpufreq/spear-cpufreq.c
@@ -195,7 +195,7 @@ static int spear_cpufreq_probe(struct platform_device *pdev)
195 cnt = prop->length / sizeof(u32); 195 cnt = prop->length / sizeof(u32);
196 val = prop->value; 196 val = prop->value;
197 197
198 freq_tbl = kzalloc(sizeof(*freq_tbl) * (cnt + 1), GFP_KERNEL); 198 freq_tbl = kcalloc(cnt + 1, sizeof(*freq_tbl), GFP_KERNEL);
199 if (!freq_tbl) { 199 if (!freq_tbl) {
200 ret = -ENOMEM; 200 ret = -ENOMEM;
201 goto out_put_node; 201 goto out_put_node;
diff --git a/drivers/crypto/amcc/crypto4xx_core.c b/drivers/crypto/amcc/crypto4xx_core.c
index 9cb234c72549..05981ccd9901 100644
--- a/drivers/crypto/amcc/crypto4xx_core.c
+++ b/drivers/crypto/amcc/crypto4xx_core.c
@@ -141,11 +141,11 @@ static void crypto4xx_hw_init(struct crypto4xx_device *dev)
141 141
142int crypto4xx_alloc_sa(struct crypto4xx_ctx *ctx, u32 size) 142int crypto4xx_alloc_sa(struct crypto4xx_ctx *ctx, u32 size)
143{ 143{
144 ctx->sa_in = kzalloc(size * 4, GFP_ATOMIC); 144 ctx->sa_in = kcalloc(size, 4, GFP_ATOMIC);
145 if (ctx->sa_in == NULL) 145 if (ctx->sa_in == NULL)
146 return -ENOMEM; 146 return -ENOMEM;
147 147
148 ctx->sa_out = kzalloc(size * 4, GFP_ATOMIC); 148 ctx->sa_out = kcalloc(size, 4, GFP_ATOMIC);
149 if (ctx->sa_out == NULL) { 149 if (ctx->sa_out == NULL) {
150 kfree(ctx->sa_in); 150 kfree(ctx->sa_in);
151 ctx->sa_in = NULL; 151 ctx->sa_in = NULL;
@@ -180,8 +180,8 @@ static u32 crypto4xx_build_pdr(struct crypto4xx_device *dev)
180 if (!dev->pdr) 180 if (!dev->pdr)
181 return -ENOMEM; 181 return -ENOMEM;
182 182
183 dev->pdr_uinfo = kzalloc(sizeof(struct pd_uinfo) * PPC4XX_NUM_PD, 183 dev->pdr_uinfo = kcalloc(PPC4XX_NUM_PD, sizeof(struct pd_uinfo),
184 GFP_KERNEL); 184 GFP_KERNEL);
185 if (!dev->pdr_uinfo) { 185 if (!dev->pdr_uinfo) {
186 dma_free_coherent(dev->core_dev->device, 186 dma_free_coherent(dev->core_dev->device,
187 sizeof(struct ce_pd) * PPC4XX_NUM_PD, 187 sizeof(struct ce_pd) * PPC4XX_NUM_PD,
diff --git a/drivers/crypto/cavium/nitrox/nitrox_isr.c b/drivers/crypto/cavium/nitrox/nitrox_isr.c
index dbead5f45df3..ee0d70ba25d5 100644
--- a/drivers/crypto/cavium/nitrox/nitrox_isr.c
+++ b/drivers/crypto/cavium/nitrox/nitrox_isr.c
@@ -254,7 +254,7 @@ static int nitrox_enable_msix(struct nitrox_device *ndev)
254 * Entry 192: NPS_CORE_INT_ACTIVE 254 * Entry 192: NPS_CORE_INT_ACTIVE
255 */ 255 */
256 nr_entries = (ndev->nr_queues * NR_RING_VECTORS) + 1; 256 nr_entries = (ndev->nr_queues * NR_RING_VECTORS) + 1;
257 entries = kzalloc_node(nr_entries * sizeof(struct msix_entry), 257 entries = kcalloc_node(nr_entries, sizeof(struct msix_entry),
258 GFP_KERNEL, ndev->node); 258 GFP_KERNEL, ndev->node);
259 if (!entries) 259 if (!entries)
260 return -ENOMEM; 260 return -ENOMEM;
diff --git a/drivers/crypto/chelsio/chtls/chtls_io.c b/drivers/crypto/chelsio/chtls/chtls_io.c
index 51fc6821cbbf..00c7aab8e7d0 100644
--- a/drivers/crypto/chelsio/chtls/chtls_io.c
+++ b/drivers/crypto/chelsio/chtls/chtls_io.c
@@ -240,7 +240,7 @@ static int tls_copy_ivs(struct sock *sk, struct sk_buff *skb)
240 } 240 }
241 241
242 /* generate the IVs */ 242 /* generate the IVs */
243 ivs = kmalloc(number_of_ivs * CIPHER_BLOCK_SIZE, GFP_ATOMIC); 243 ivs = kmalloc_array(CIPHER_BLOCK_SIZE, number_of_ivs, GFP_ATOMIC);
244 if (!ivs) 244 if (!ivs)
245 return -ENOMEM; 245 return -ENOMEM;
246 get_random_bytes(ivs, number_of_ivs * CIPHER_BLOCK_SIZE); 246 get_random_bytes(ivs, number_of_ivs * CIPHER_BLOCK_SIZE);
diff --git a/drivers/crypto/inside-secure/safexcel_hash.c b/drivers/crypto/inside-secure/safexcel_hash.c
index d138d6b8fec5..c77b0e1655a8 100644
--- a/drivers/crypto/inside-secure/safexcel_hash.c
+++ b/drivers/crypto/inside-secure/safexcel_hash.c
@@ -922,7 +922,7 @@ int safexcel_hmac_setkey(const char *alg, const u8 *key, unsigned int keylen,
922 crypto_ahash_clear_flags(tfm, ~0); 922 crypto_ahash_clear_flags(tfm, ~0);
923 blocksize = crypto_tfm_alg_blocksize(crypto_ahash_tfm(tfm)); 923 blocksize = crypto_tfm_alg_blocksize(crypto_ahash_tfm(tfm));
924 924
925 ipad = kzalloc(2 * blocksize, GFP_KERNEL); 925 ipad = kcalloc(2, blocksize, GFP_KERNEL);
926 if (!ipad) { 926 if (!ipad) {
927 ret = -ENOMEM; 927 ret = -ENOMEM;
928 goto free_request; 928 goto free_request;
diff --git a/drivers/crypto/marvell/cesa.c b/drivers/crypto/marvell/cesa.c
index f81fa4a3e66b..a4aa6813de4b 100644
--- a/drivers/crypto/marvell/cesa.c
+++ b/drivers/crypto/marvell/cesa.c
@@ -471,7 +471,7 @@ static int mv_cesa_probe(struct platform_device *pdev)
471 sram_size = CESA_SA_MIN_SRAM_SIZE; 471 sram_size = CESA_SA_MIN_SRAM_SIZE;
472 472
473 cesa->sram_size = sram_size; 473 cesa->sram_size = sram_size;
474 cesa->engines = devm_kzalloc(dev, caps->nengines * sizeof(*engines), 474 cesa->engines = devm_kcalloc(dev, caps->nengines, sizeof(*engines),
475 GFP_KERNEL); 475 GFP_KERNEL);
476 if (!cesa->engines) 476 if (!cesa->engines)
477 return -ENOMEM; 477 return -ENOMEM;
diff --git a/drivers/crypto/marvell/hash.c b/drivers/crypto/marvell/hash.c
index e61b08566093..e34d80b6b7e5 100644
--- a/drivers/crypto/marvell/hash.c
+++ b/drivers/crypto/marvell/hash.c
@@ -1198,7 +1198,7 @@ static int mv_cesa_ahmac_setkey(const char *hash_alg_name,
1198 1198
1199 blocksize = crypto_tfm_alg_blocksize(crypto_ahash_tfm(tfm)); 1199 blocksize = crypto_tfm_alg_blocksize(crypto_ahash_tfm(tfm));
1200 1200
1201 ipad = kzalloc(2 * blocksize, GFP_KERNEL); 1201 ipad = kcalloc(2, blocksize, GFP_KERNEL);
1202 if (!ipad) { 1202 if (!ipad) {
1203 ret = -ENOMEM; 1203 ret = -ENOMEM;
1204 goto free_req; 1204 goto free_req;
diff --git a/drivers/crypto/n2_core.c b/drivers/crypto/n2_core.c
index 80e9c842aad4..ab6235b7ff22 100644
--- a/drivers/crypto/n2_core.c
+++ b/drivers/crypto/n2_core.c
@@ -1919,12 +1919,12 @@ static int grab_global_resources(void)
1919 goto out_hvapi_release; 1919 goto out_hvapi_release;
1920 1920
1921 err = -ENOMEM; 1921 err = -ENOMEM;
1922 cpu_to_cwq = kzalloc(sizeof(struct spu_queue *) * NR_CPUS, 1922 cpu_to_cwq = kcalloc(NR_CPUS, sizeof(struct spu_queue *),
1923 GFP_KERNEL); 1923 GFP_KERNEL);
1924 if (!cpu_to_cwq) 1924 if (!cpu_to_cwq)
1925 goto out_queue_cache_destroy; 1925 goto out_queue_cache_destroy;
1926 1926
1927 cpu_to_mau = kzalloc(sizeof(struct spu_queue *) * NR_CPUS, 1927 cpu_to_mau = kcalloc(NR_CPUS, sizeof(struct spu_queue *),
1928 GFP_KERNEL); 1928 GFP_KERNEL);
1929 if (!cpu_to_mau) 1929 if (!cpu_to_mau)
1930 goto out_free_cwq_table; 1930 goto out_free_cwq_table;
diff --git a/drivers/crypto/qat/qat_common/adf_isr.c b/drivers/crypto/qat/qat_common/adf_isr.c
index 06d49017a52b..cd1cdf5305bc 100644
--- a/drivers/crypto/qat/qat_common/adf_isr.c
+++ b/drivers/crypto/qat/qat_common/adf_isr.c
@@ -238,7 +238,7 @@ static int adf_isr_alloc_msix_entry_table(struct adf_accel_dev *accel_dev)
238 if (!accel_dev->pf.vf_info) 238 if (!accel_dev->pf.vf_info)
239 msix_num_entries += hw_data->num_banks; 239 msix_num_entries += hw_data->num_banks;
240 240
241 entries = kzalloc_node(msix_num_entries * sizeof(*entries), 241 entries = kcalloc_node(msix_num_entries, sizeof(*entries),
242 GFP_KERNEL, dev_to_node(&GET_DEV(accel_dev))); 242 GFP_KERNEL, dev_to_node(&GET_DEV(accel_dev)));
243 if (!entries) 243 if (!entries)
244 return -ENOMEM; 244 return -ENOMEM;
diff --git a/drivers/crypto/qat/qat_common/qat_uclo.c b/drivers/crypto/qat/qat_common/qat_uclo.c
index 98d22c2096e3..6bd8f6a2a24f 100644
--- a/drivers/crypto/qat/qat_common/qat_uclo.c
+++ b/drivers/crypto/qat/qat_common/qat_uclo.c
@@ -1162,8 +1162,9 @@ static int qat_uclo_map_suof(struct icp_qat_fw_loader_handle *handle,
1162 suof_handle->img_table.num_simgs = suof_ptr->num_chunks - 1; 1162 suof_handle->img_table.num_simgs = suof_ptr->num_chunks - 1;
1163 1163
1164 if (suof_handle->img_table.num_simgs != 0) { 1164 if (suof_handle->img_table.num_simgs != 0) {
1165 suof_img_hdr = kzalloc(suof_handle->img_table.num_simgs * 1165 suof_img_hdr = kcalloc(suof_handle->img_table.num_simgs,
1166 sizeof(img_header), GFP_KERNEL); 1166 sizeof(img_header),
1167 GFP_KERNEL);
1167 if (!suof_img_hdr) 1168 if (!suof_img_hdr)
1168 return -ENOMEM; 1169 return -ENOMEM;
1169 suof_handle->img_table.simg_hdr = suof_img_hdr; 1170 suof_handle->img_table.simg_hdr = suof_img_hdr;
diff --git a/drivers/crypto/stm32/stm32-hash.c b/drivers/crypto/stm32/stm32-hash.c
index 981e45692695..cdc96f1bb917 100644
--- a/drivers/crypto/stm32/stm32-hash.c
+++ b/drivers/crypto/stm32/stm32-hash.c
@@ -970,8 +970,9 @@ static int stm32_hash_export(struct ahash_request *req, void *out)
970 while (!(stm32_hash_read(hdev, HASH_SR) & HASH_SR_DATA_INPUT_READY)) 970 while (!(stm32_hash_read(hdev, HASH_SR) & HASH_SR_DATA_INPUT_READY))
971 cpu_relax(); 971 cpu_relax();
972 972
973 rctx->hw_context = kmalloc(sizeof(u32) * (3 + HASH_CSR_REGISTER_NUMBER), 973 rctx->hw_context = kmalloc_array(3 + HASH_CSR_REGISTER_NUMBER,
974 GFP_KERNEL); 974 sizeof(u32),
975 GFP_KERNEL);
975 976
976 preg = rctx->hw_context; 977 preg = rctx->hw_context;
977 978
diff --git a/drivers/crypto/talitos.c b/drivers/crypto/talitos.c
index 7cebf0a6ffbc..cf14f099ce4a 100644
--- a/drivers/crypto/talitos.c
+++ b/drivers/crypto/talitos.c
@@ -3393,8 +3393,10 @@ static int talitos_probe(struct platform_device *ofdev)
3393 } 3393 }
3394 } 3394 }
3395 3395
3396 priv->chan = devm_kzalloc(dev, sizeof(struct talitos_channel) * 3396 priv->chan = devm_kcalloc(dev,
3397 priv->num_channels, GFP_KERNEL); 3397 priv->num_channels,
3398 sizeof(struct talitos_channel),
3399 GFP_KERNEL);
3398 if (!priv->chan) { 3400 if (!priv->chan) {
3399 dev_err(dev, "failed to allocate channel management space\n"); 3401 dev_err(dev, "failed to allocate channel management space\n");
3400 err = -ENOMEM; 3402 err = -ENOMEM;
@@ -3411,9 +3413,10 @@ static int talitos_probe(struct platform_device *ofdev)
3411 spin_lock_init(&priv->chan[i].head_lock); 3413 spin_lock_init(&priv->chan[i].head_lock);
3412 spin_lock_init(&priv->chan[i].tail_lock); 3414 spin_lock_init(&priv->chan[i].tail_lock);
3413 3415
3414 priv->chan[i].fifo = devm_kzalloc(dev, 3416 priv->chan[i].fifo = devm_kcalloc(dev,
3415 sizeof(struct talitos_request) * 3417 priv->fifo_len,
3416 priv->fifo_len, GFP_KERNEL); 3418 sizeof(struct talitos_request),
3419 GFP_KERNEL);
3417 if (!priv->chan[i].fifo) { 3420 if (!priv->chan[i].fifo) {
3418 dev_err(dev, "failed to allocate request fifo %d\n", i); 3421 dev_err(dev, "failed to allocate request fifo %d\n", i);
3419 err = -ENOMEM; 3422 err = -ENOMEM;
diff --git a/drivers/crypto/virtio/virtio_crypto_algs.c b/drivers/crypto/virtio/virtio_crypto_algs.c
index ba190cfa7aa1..af6a908dfa7a 100644
--- a/drivers/crypto/virtio/virtio_crypto_algs.c
+++ b/drivers/crypto/virtio/virtio_crypto_algs.c
@@ -371,7 +371,7 @@ __virtio_crypto_ablkcipher_do_req(struct virtio_crypto_sym_request *vc_sym_req,
371 371
372 /* Why 3? outhdr + iv + inhdr */ 372 /* Why 3? outhdr + iv + inhdr */
373 sg_total = src_nents + dst_nents + 3; 373 sg_total = src_nents + dst_nents + 3;
374 sgs = kzalloc_node(sg_total * sizeof(*sgs), GFP_ATOMIC, 374 sgs = kcalloc_node(sg_total, sizeof(*sgs), GFP_ATOMIC,
375 dev_to_node(&vcrypto->vdev->dev)); 375 dev_to_node(&vcrypto->vdev->dev));
376 if (!sgs) 376 if (!sgs)
377 return -ENOMEM; 377 return -ENOMEM;
diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c
index fe2af6aa88fc..0b5b3abe054e 100644
--- a/drivers/devfreq/devfreq.c
+++ b/drivers/devfreq/devfreq.c
@@ -628,14 +628,15 @@ struct devfreq *devfreq_add_device(struct device *dev,
628 goto err_dev; 628 goto err_dev;
629 } 629 }
630 630
631 devfreq->trans_table = devm_kzalloc(&devfreq->dev, 631 devfreq->trans_table =
632 sizeof(unsigned int) * 632 devm_kzalloc(&devfreq->dev,
633 devfreq->profile->max_state * 633 array3_size(sizeof(unsigned int),
634 devfreq->profile->max_state, 634 devfreq->profile->max_state,
635 GFP_KERNEL); 635 devfreq->profile->max_state),
636 devfreq->time_in_state = devm_kzalloc(&devfreq->dev, 636 GFP_KERNEL);
637 sizeof(unsigned long) * 637 devfreq->time_in_state = devm_kcalloc(&devfreq->dev,
638 devfreq->profile->max_state, 638 devfreq->profile->max_state,
639 sizeof(unsigned long),
639 GFP_KERNEL); 640 GFP_KERNEL);
640 devfreq->last_stat_updated = jiffies; 641 devfreq->last_stat_updated = jiffies;
641 642
diff --git a/drivers/devfreq/event/exynos-ppmu.c b/drivers/devfreq/event/exynos-ppmu.c
index d96e3dc71cf8..3cd6a184fe7c 100644
--- a/drivers/devfreq/event/exynos-ppmu.c
+++ b/drivers/devfreq/event/exynos-ppmu.c
@@ -518,7 +518,7 @@ static int of_get_devfreq_events(struct device_node *np,
518 event_ops = exynos_bus_get_ops(np); 518 event_ops = exynos_bus_get_ops(np);
519 519
520 count = of_get_child_count(events_np); 520 count = of_get_child_count(events_np);
521 desc = devm_kzalloc(dev, sizeof(*desc) * count, GFP_KERNEL); 521 desc = devm_kcalloc(dev, count, sizeof(*desc), GFP_KERNEL);
522 if (!desc) 522 if (!desc)
523 return -ENOMEM; 523 return -ENOMEM;
524 info->num_events = count; 524 info->num_events = count;
diff --git a/drivers/dma/bestcomm/bestcomm.c b/drivers/dma/bestcomm/bestcomm.c
index 7a67b8345092..d91cbbe7a48f 100644
--- a/drivers/dma/bestcomm/bestcomm.c
+++ b/drivers/dma/bestcomm/bestcomm.c
@@ -87,7 +87,8 @@ bcom_task_alloc(int bd_count, int bd_size, int priv_size)
87 87
88 /* Init the BDs, if needed */ 88 /* Init the BDs, if needed */
89 if (bd_count) { 89 if (bd_count) {
90 tsk->cookie = kmalloc(sizeof(void*) * bd_count, GFP_KERNEL); 90 tsk->cookie = kmalloc_array(bd_count, sizeof(void *),
91 GFP_KERNEL);
91 if (!tsk->cookie) 92 if (!tsk->cookie)
92 goto error; 93 goto error;
93 94
diff --git a/drivers/dma/ioat/init.c b/drivers/dma/ioat/init.c
index 7792a9186f9c..4fa4c06c9edb 100644
--- a/drivers/dma/ioat/init.c
+++ b/drivers/dma/ioat/init.c
@@ -322,10 +322,10 @@ static int ioat_dma_self_test(struct ioatdma_device *ioat_dma)
322 unsigned long tmo; 322 unsigned long tmo;
323 unsigned long flags; 323 unsigned long flags;
324 324
325 src = kzalloc(sizeof(u8) * IOAT_TEST_SIZE, GFP_KERNEL); 325 src = kzalloc(IOAT_TEST_SIZE, GFP_KERNEL);
326 if (!src) 326 if (!src)
327 return -ENOMEM; 327 return -ENOMEM;
328 dest = kzalloc(sizeof(u8) * IOAT_TEST_SIZE, GFP_KERNEL); 328 dest = kzalloc(IOAT_TEST_SIZE, GFP_KERNEL);
329 if (!dest) { 329 if (!dest) {
330 kfree(src); 330 kfree(src);
331 return -ENOMEM; 331 return -ENOMEM;
diff --git a/drivers/dma/ipu/ipu_idmac.c b/drivers/dma/ipu/ipu_idmac.c
index ed76044ce4b9..bbff52be4f0f 100644
--- a/drivers/dma/ipu/ipu_idmac.c
+++ b/drivers/dma/ipu/ipu_idmac.c
@@ -910,7 +910,8 @@ out:
910/* Called with ichan->chan_mutex held */ 910/* Called with ichan->chan_mutex held */
911static int idmac_desc_alloc(struct idmac_channel *ichan, int n) 911static int idmac_desc_alloc(struct idmac_channel *ichan, int n)
912{ 912{
913 struct idmac_tx_desc *desc = vmalloc(n * sizeof(struct idmac_tx_desc)); 913 struct idmac_tx_desc *desc =
914 vmalloc(array_size(n, sizeof(struct idmac_tx_desc)));
914 struct idmac *idmac = to_idmac(ichan->dma_chan.device); 915 struct idmac *idmac = to_idmac(ichan->dma_chan.device);
915 916
916 if (!desc) 917 if (!desc)
diff --git a/drivers/dma/k3dma.c b/drivers/dma/k3dma.c
index 26b67455208f..fa31cccbe04f 100644
--- a/drivers/dma/k3dma.c
+++ b/drivers/dma/k3dma.c
@@ -848,8 +848,8 @@ static int k3_dma_probe(struct platform_device *op)
848 return -ENOMEM; 848 return -ENOMEM;
849 849
850 /* init phy channel */ 850 /* init phy channel */
851 d->phy = devm_kzalloc(&op->dev, 851 d->phy = devm_kcalloc(&op->dev,
852 d->dma_channels * sizeof(struct k3_dma_phy), GFP_KERNEL); 852 d->dma_channels, sizeof(struct k3_dma_phy), GFP_KERNEL);
853 if (d->phy == NULL) 853 if (d->phy == NULL)
854 return -ENOMEM; 854 return -ENOMEM;
855 855
@@ -879,8 +879,8 @@ static int k3_dma_probe(struct platform_device *op)
879 d->slave.copy_align = DMAENGINE_ALIGN_8_BYTES; 879 d->slave.copy_align = DMAENGINE_ALIGN_8_BYTES;
880 880
881 /* init virtual channel */ 881 /* init virtual channel */
882 d->chans = devm_kzalloc(&op->dev, 882 d->chans = devm_kcalloc(&op->dev,
883 d->dma_requests * sizeof(struct k3_dma_chan), GFP_KERNEL); 883 d->dma_requests, sizeof(struct k3_dma_chan), GFP_KERNEL);
884 if (d->chans == NULL) 884 if (d->chans == NULL)
885 return -ENOMEM; 885 return -ENOMEM;
886 886
diff --git a/drivers/dma/mic_x100_dma.c b/drivers/dma/mic_x100_dma.c
index 94d7bd7d2880..68dd79783b54 100644
--- a/drivers/dma/mic_x100_dma.c
+++ b/drivers/dma/mic_x100_dma.c
@@ -385,7 +385,8 @@ static int mic_dma_alloc_desc_ring(struct mic_dma_chan *ch)
385 if (dma_mapping_error(dev, ch->desc_ring_micpa)) 385 if (dma_mapping_error(dev, ch->desc_ring_micpa))
386 goto map_error; 386 goto map_error;
387 387
388 ch->tx_array = vzalloc(MIC_DMA_DESC_RX_SIZE * sizeof(*ch->tx_array)); 388 ch->tx_array = vzalloc(array_size(MIC_DMA_DESC_RX_SIZE,
389 sizeof(*ch->tx_array)));
389 if (!ch->tx_array) 390 if (!ch->tx_array)
390 goto tx_error; 391 goto tx_error;
391 return 0; 392 return 0;
diff --git a/drivers/dma/mv_xor.c b/drivers/dma/mv_xor.c
index 1993889003fd..969534c1a6c6 100644
--- a/drivers/dma/mv_xor.c
+++ b/drivers/dma/mv_xor.c
@@ -777,11 +777,11 @@ static int mv_chan_memcpy_self_test(struct mv_xor_chan *mv_chan)
777 struct dmaengine_unmap_data *unmap; 777 struct dmaengine_unmap_data *unmap;
778 int err = 0; 778 int err = 0;
779 779
780 src = kmalloc(sizeof(u8) * PAGE_SIZE, GFP_KERNEL); 780 src = kmalloc(PAGE_SIZE, GFP_KERNEL);
781 if (!src) 781 if (!src)
782 return -ENOMEM; 782 return -ENOMEM;
783 783
784 dest = kzalloc(sizeof(u8) * PAGE_SIZE, GFP_KERNEL); 784 dest = kzalloc(PAGE_SIZE, GFP_KERNEL);
785 if (!dest) { 785 if (!dest) {
786 kfree(src); 786 kfree(src);
787 return -ENOMEM; 787 return -ENOMEM;
diff --git a/drivers/dma/mv_xor_v2.c b/drivers/dma/mv_xor_v2.c
index 3548caa9e933..c6589ccf1b9a 100644
--- a/drivers/dma/mv_xor_v2.c
+++ b/drivers/dma/mv_xor_v2.c
@@ -809,8 +809,9 @@ static int mv_xor_v2_probe(struct platform_device *pdev)
809 } 809 }
810 810
811 /* alloc memory for the SW descriptors */ 811 /* alloc memory for the SW descriptors */
812 xor_dev->sw_desq = devm_kzalloc(&pdev->dev, sizeof(*sw_desc) * 812 xor_dev->sw_desq = devm_kcalloc(&pdev->dev,
813 MV_XOR_V2_DESC_NUM, GFP_KERNEL); 813 MV_XOR_V2_DESC_NUM, sizeof(*sw_desc),
814 GFP_KERNEL);
814 if (!xor_dev->sw_desq) { 815 if (!xor_dev->sw_desq) {
815 ret = -ENOMEM; 816 ret = -ENOMEM;
816 goto free_hw_desq; 817 goto free_hw_desq;
diff --git a/drivers/dma/pl330.c b/drivers/dma/pl330.c
index 6237069001c4..defcdde4d358 100644
--- a/drivers/dma/pl330.c
+++ b/drivers/dma/pl330.c
@@ -1866,7 +1866,7 @@ static int dmac_alloc_threads(struct pl330_dmac *pl330)
1866 int i; 1866 int i;
1867 1867
1868 /* Allocate 1 Manager and 'chans' Channel threads */ 1868 /* Allocate 1 Manager and 'chans' Channel threads */
1869 pl330->channels = kzalloc((1 + chans) * sizeof(*thrd), 1869 pl330->channels = kcalloc(1 + chans, sizeof(*thrd),
1870 GFP_KERNEL); 1870 GFP_KERNEL);
1871 if (!pl330->channels) 1871 if (!pl330->channels)
1872 return -ENOMEM; 1872 return -ENOMEM;
@@ -2990,7 +2990,7 @@ pl330_probe(struct amba_device *adev, const struct amba_id *id)
2990 2990
2991 pl330->num_peripherals = num_chan; 2991 pl330->num_peripherals = num_chan;
2992 2992
2993 pl330->peripherals = kzalloc(num_chan * sizeof(*pch), GFP_KERNEL); 2993 pl330->peripherals = kcalloc(num_chan, sizeof(*pch), GFP_KERNEL);
2994 if (!pl330->peripherals) { 2994 if (!pl330->peripherals) {
2995 ret = -ENOMEM; 2995 ret = -ENOMEM;
2996 goto probe_err2; 2996 goto probe_err2;
diff --git a/drivers/dma/s3c24xx-dma.c b/drivers/dma/s3c24xx-dma.c
index cd92d696bcf9..7056fe7513b4 100644
--- a/drivers/dma/s3c24xx-dma.c
+++ b/drivers/dma/s3c24xx-dma.c
@@ -1223,9 +1223,9 @@ static int s3c24xx_dma_probe(struct platform_device *pdev)
1223 if (IS_ERR(s3cdma->base)) 1223 if (IS_ERR(s3cdma->base))
1224 return PTR_ERR(s3cdma->base); 1224 return PTR_ERR(s3cdma->base);
1225 1225
1226 s3cdma->phy_chans = devm_kzalloc(&pdev->dev, 1226 s3cdma->phy_chans = devm_kcalloc(&pdev->dev,
1227 sizeof(struct s3c24xx_dma_phy) * 1227 pdata->num_phy_channels,
1228 pdata->num_phy_channels, 1228 sizeof(struct s3c24xx_dma_phy),
1229 GFP_KERNEL); 1229 GFP_KERNEL);
1230 if (!s3cdma->phy_chans) 1230 if (!s3cdma->phy_chans)
1231 return -ENOMEM; 1231 return -ENOMEM;
diff --git a/drivers/dma/sh/shdma-base.c b/drivers/dma/sh/shdma-base.c
index 12fa48e380cf..6b5626e299b2 100644
--- a/drivers/dma/sh/shdma-base.c
+++ b/drivers/dma/sh/shdma-base.c
@@ -1045,8 +1045,9 @@ EXPORT_SYMBOL(shdma_cleanup);
1045 1045
1046static int __init shdma_enter(void) 1046static int __init shdma_enter(void)
1047{ 1047{
1048 shdma_slave_used = kzalloc(DIV_ROUND_UP(slave_num, BITS_PER_LONG) * 1048 shdma_slave_used = kcalloc(DIV_ROUND_UP(slave_num, BITS_PER_LONG),
1049 sizeof(long), GFP_KERNEL); 1049 sizeof(long),
1050 GFP_KERNEL);
1050 if (!shdma_slave_used) 1051 if (!shdma_slave_used)
1051 return -ENOMEM; 1052 return -ENOMEM;
1052 return 0; 1053 return 0;
diff --git a/drivers/dma/xilinx/zynqmp_dma.c b/drivers/dma/xilinx/zynqmp_dma.c
index f14645817ed8..c74a88b65039 100644
--- a/drivers/dma/xilinx/zynqmp_dma.c
+++ b/drivers/dma/xilinx/zynqmp_dma.c
@@ -471,7 +471,7 @@ static int zynqmp_dma_alloc_chan_resources(struct dma_chan *dchan)
471 if (ret < 0) 471 if (ret < 0)
472 return ret; 472 return ret;
473 473
474 chan->sw_desc_pool = kzalloc(sizeof(*desc) * ZYNQMP_DMA_NUM_DESCS, 474 chan->sw_desc_pool = kcalloc(ZYNQMP_DMA_NUM_DESCS, sizeof(*desc),
475 GFP_KERNEL); 475 GFP_KERNEL);
476 if (!chan->sw_desc_pool) 476 if (!chan->sw_desc_pool)
477 return -ENOMEM; 477 return -ENOMEM;
diff --git a/drivers/dma/zx_dma.c b/drivers/dma/zx_dma.c
index 2bb695315300..2571bc7693df 100644
--- a/drivers/dma/zx_dma.c
+++ b/drivers/dma/zx_dma.c
@@ -798,8 +798,8 @@ static int zx_dma_probe(struct platform_device *op)
798 return -ENOMEM; 798 return -ENOMEM;
799 799
800 /* init phy channel */ 800 /* init phy channel */
801 d->phy = devm_kzalloc(&op->dev, 801 d->phy = devm_kcalloc(&op->dev,
802 d->dma_channels * sizeof(struct zx_dma_phy), GFP_KERNEL); 802 d->dma_channels, sizeof(struct zx_dma_phy), GFP_KERNEL);
803 if (!d->phy) 803 if (!d->phy)
804 return -ENOMEM; 804 return -ENOMEM;
805 805
@@ -834,8 +834,8 @@ static int zx_dma_probe(struct platform_device *op)
834 d->slave.residue_granularity = DMA_RESIDUE_GRANULARITY_SEGMENT; 834 d->slave.residue_granularity = DMA_RESIDUE_GRANULARITY_SEGMENT;
835 835
836 /* init virtual channel */ 836 /* init virtual channel */
837 d->chans = devm_kzalloc(&op->dev, 837 d->chans = devm_kcalloc(&op->dev,
838 d->dma_requests * sizeof(struct zx_dma_chan), GFP_KERNEL); 838 d->dma_requests, sizeof(struct zx_dma_chan), GFP_KERNEL);
839 if (!d->chans) 839 if (!d->chans)
840 return -ENOMEM; 840 return -ENOMEM;
841 841
diff --git a/drivers/edac/amd64_edac.c b/drivers/edac/amd64_edac.c
index 329cb96f886f..18aeabb1d5ee 100644
--- a/drivers/edac/amd64_edac.c
+++ b/drivers/edac/amd64_edac.c
@@ -3451,7 +3451,7 @@ static int __init amd64_edac_init(void)
3451 opstate_init(); 3451 opstate_init();
3452 3452
3453 err = -ENOMEM; 3453 err = -ENOMEM;
3454 ecc_stngs = kzalloc(amd_nb_num() * sizeof(ecc_stngs[0]), GFP_KERNEL); 3454 ecc_stngs = kcalloc(amd_nb_num(), sizeof(ecc_stngs[0]), GFP_KERNEL);
3455 if (!ecc_stngs) 3455 if (!ecc_stngs)
3456 goto err_free; 3456 goto err_free;
3457 3457
diff --git a/drivers/edac/i7core_edac.c b/drivers/edac/i7core_edac.c
index 4d0ea3563d47..8ed4dd9c571b 100644
--- a/drivers/edac/i7core_edac.c
+++ b/drivers/edac/i7core_edac.c
@@ -461,7 +461,7 @@ static struct i7core_dev *alloc_i7core_dev(u8 socket,
461 if (!i7core_dev) 461 if (!i7core_dev)
462 return NULL; 462 return NULL;
463 463
464 i7core_dev->pdev = kzalloc(sizeof(*i7core_dev->pdev) * table->n_devs, 464 i7core_dev->pdev = kcalloc(table->n_devs, sizeof(*i7core_dev->pdev),
465 GFP_KERNEL); 465 GFP_KERNEL);
466 if (!i7core_dev->pdev) { 466 if (!i7core_dev->pdev) {
467 kfree(i7core_dev); 467 kfree(i7core_dev);
diff --git a/drivers/extcon/extcon.c b/drivers/extcon/extcon.c
index 8bff5fd18185..af83ad58819c 100644
--- a/drivers/extcon/extcon.c
+++ b/drivers/extcon/extcon.c
@@ -1126,8 +1126,9 @@ int extcon_dev_register(struct extcon_dev *edev)
1126 char *str; 1126 char *str;
1127 struct extcon_cable *cable; 1127 struct extcon_cable *cable;
1128 1128
1129 edev->cables = kzalloc(sizeof(struct extcon_cable) * 1129 edev->cables = kcalloc(edev->max_supported,
1130 edev->max_supported, GFP_KERNEL); 1130 sizeof(struct extcon_cable),
1131 GFP_KERNEL);
1131 if (!edev->cables) { 1132 if (!edev->cables) {
1132 ret = -ENOMEM; 1133 ret = -ENOMEM;
1133 goto err_sysfs_alloc; 1134 goto err_sysfs_alloc;
@@ -1136,7 +1137,7 @@ int extcon_dev_register(struct extcon_dev *edev)
1136 cable = &edev->cables[index]; 1137 cable = &edev->cables[index];
1137 1138
1138 snprintf(buf, 10, "cable.%d", index); 1139 snprintf(buf, 10, "cable.%d", index);
1139 str = kzalloc(sizeof(char) * (strlen(buf) + 1), 1140 str = kzalloc(strlen(buf) + 1,
1140 GFP_KERNEL); 1141 GFP_KERNEL);
1141 if (!str) { 1142 if (!str) {
1142 for (index--; index >= 0; index--) { 1143 for (index--; index >= 0; index--) {
@@ -1177,15 +1178,17 @@ int extcon_dev_register(struct extcon_dev *edev)
1177 for (index = 0; edev->mutually_exclusive[index]; index++) 1178 for (index = 0; edev->mutually_exclusive[index]; index++)
1178 ; 1179 ;
1179 1180
1180 edev->attrs_muex = kzalloc(sizeof(struct attribute *) * 1181 edev->attrs_muex = kcalloc(index + 1,
1181 (index + 1), GFP_KERNEL); 1182 sizeof(struct attribute *),
1183 GFP_KERNEL);
1182 if (!edev->attrs_muex) { 1184 if (!edev->attrs_muex) {
1183 ret = -ENOMEM; 1185 ret = -ENOMEM;
1184 goto err_muex; 1186 goto err_muex;
1185 } 1187 }
1186 1188
1187 edev->d_attrs_muex = kzalloc(sizeof(struct device_attribute) * 1189 edev->d_attrs_muex = kcalloc(index,
1188 index, GFP_KERNEL); 1190 sizeof(struct device_attribute),
1191 GFP_KERNEL);
1189 if (!edev->d_attrs_muex) { 1192 if (!edev->d_attrs_muex) {
1190 ret = -ENOMEM; 1193 ret = -ENOMEM;
1191 kfree(edev->attrs_muex); 1194 kfree(edev->attrs_muex);
@@ -1194,7 +1197,7 @@ int extcon_dev_register(struct extcon_dev *edev)
1194 1197
1195 for (index = 0; edev->mutually_exclusive[index]; index++) { 1198 for (index = 0; edev->mutually_exclusive[index]; index++) {
1196 sprintf(buf, "0x%x", edev->mutually_exclusive[index]); 1199 sprintf(buf, "0x%x", edev->mutually_exclusive[index]);
1197 name = kzalloc(sizeof(char) * (strlen(buf) + 1), 1200 name = kzalloc(strlen(buf) + 1,
1198 GFP_KERNEL); 1201 GFP_KERNEL);
1199 if (!name) { 1202 if (!name) {
1200 for (index--; index >= 0; index--) { 1203 for (index--; index >= 0; index--) {
@@ -1220,8 +1223,9 @@ int extcon_dev_register(struct extcon_dev *edev)
1220 1223
1221 if (edev->max_supported) { 1224 if (edev->max_supported) {
1222 edev->extcon_dev_type.groups = 1225 edev->extcon_dev_type.groups =
1223 kzalloc(sizeof(struct attribute_group *) * 1226 kcalloc(edev->max_supported + 2,
1224 (edev->max_supported + 2), GFP_KERNEL); 1227 sizeof(struct attribute_group *),
1228 GFP_KERNEL);
1225 if (!edev->extcon_dev_type.groups) { 1229 if (!edev->extcon_dev_type.groups) {
1226 ret = -ENOMEM; 1230 ret = -ENOMEM;
1227 goto err_alloc_groups; 1231 goto err_alloc_groups;
diff --git a/drivers/firewire/core-iso.c b/drivers/firewire/core-iso.c
index 38c0aa60b2cb..051327a951b1 100644
--- a/drivers/firewire/core-iso.c
+++ b/drivers/firewire/core-iso.c
@@ -45,8 +45,8 @@ int fw_iso_buffer_alloc(struct fw_iso_buffer *buffer, int page_count)
45 45
46 buffer->page_count = 0; 46 buffer->page_count = 0;
47 buffer->page_count_mapped = 0; 47 buffer->page_count_mapped = 0;
48 buffer->pages = kmalloc(page_count * sizeof(buffer->pages[0]), 48 buffer->pages = kmalloc_array(page_count, sizeof(buffer->pages[0]),
49 GFP_KERNEL); 49 GFP_KERNEL);
50 if (buffer->pages == NULL) 50 if (buffer->pages == NULL)
51 return -ENOMEM; 51 return -ENOMEM;
52 52
diff --git a/drivers/firewire/net.c b/drivers/firewire/net.c
index 60e75e6d9104..82ba110d9d1a 100644
--- a/drivers/firewire/net.c
+++ b/drivers/firewire/net.c
@@ -1121,7 +1121,7 @@ static int fwnet_broadcast_start(struct fwnet_device *dev)
1121 max_receive = 1U << (dev->card->max_receive + 1); 1121 max_receive = 1U << (dev->card->max_receive + 1);
1122 num_packets = (FWNET_ISO_PAGE_COUNT * PAGE_SIZE) / max_receive; 1122 num_packets = (FWNET_ISO_PAGE_COUNT * PAGE_SIZE) / max_receive;
1123 1123
1124 ptrptr = kmalloc(sizeof(void *) * num_packets, GFP_KERNEL); 1124 ptrptr = kmalloc_array(num_packets, sizeof(void *), GFP_KERNEL);
1125 if (!ptrptr) { 1125 if (!ptrptr) {
1126 retval = -ENOMEM; 1126 retval = -ENOMEM;
1127 goto failed; 1127 goto failed;
diff --git a/drivers/firmware/arm_scpi.c b/drivers/firmware/arm_scpi.c
index 6d7a6c0a5e07..c7d06a36b23a 100644
--- a/drivers/firmware/arm_scpi.c
+++ b/drivers/firmware/arm_scpi.c
@@ -890,7 +890,7 @@ static int scpi_alloc_xfer_list(struct device *dev, struct scpi_chan *ch)
890 int i; 890 int i;
891 struct scpi_xfer *xfers; 891 struct scpi_xfer *xfers;
892 892
893 xfers = devm_kzalloc(dev, MAX_SCPI_XFERS * sizeof(*xfers), GFP_KERNEL); 893 xfers = devm_kcalloc(dev, MAX_SCPI_XFERS, sizeof(*xfers), GFP_KERNEL);
894 if (!xfers) 894 if (!xfers)
895 return -ENOMEM; 895 return -ENOMEM;
896 896
diff --git a/drivers/firmware/dell_rbu.c b/drivers/firmware/dell_rbu.c
index 2f452f1f7c8a..fb8af5cb7c9b 100644
--- a/drivers/firmware/dell_rbu.c
+++ b/drivers/firmware/dell_rbu.c
@@ -146,7 +146,7 @@ static int create_packet(void *data, size_t length)
146 packet_array_size = max( 146 packet_array_size = max(
147 (unsigned int)(allocation_floor / rbu_data.packetsize), 147 (unsigned int)(allocation_floor / rbu_data.packetsize),
148 (unsigned int)1); 148 (unsigned int)1);
149 invalid_addr_packet_array = kzalloc(packet_array_size * sizeof(void*), 149 invalid_addr_packet_array = kcalloc(packet_array_size, sizeof(void *),
150 GFP_KERNEL); 150 GFP_KERNEL);
151 151
152 if (!invalid_addr_packet_array) { 152 if (!invalid_addr_packet_array) {
diff --git a/drivers/firmware/efi/capsule.c b/drivers/firmware/efi/capsule.c
index 901b9306bf94..4938c29b7c5d 100644
--- a/drivers/firmware/efi/capsule.c
+++ b/drivers/firmware/efi/capsule.c
@@ -231,7 +231,7 @@ int efi_capsule_update(efi_capsule_header_t *capsule, phys_addr_t *pages)
231 count = DIV_ROUND_UP(imagesize, PAGE_SIZE); 231 count = DIV_ROUND_UP(imagesize, PAGE_SIZE);
232 sg_count = sg_pages_num(count); 232 sg_count = sg_pages_num(count);
233 233
234 sg_pages = kzalloc(sg_count * sizeof(*sg_pages), GFP_KERNEL); 234 sg_pages = kcalloc(sg_count, sizeof(*sg_pages), GFP_KERNEL);
235 if (!sg_pages) 235 if (!sg_pages)
236 return -ENOMEM; 236 return -ENOMEM;
237 237
diff --git a/drivers/firmware/efi/runtime-map.c b/drivers/firmware/efi/runtime-map.c
index f377609ff141..84a11d0a8023 100644
--- a/drivers/firmware/efi/runtime-map.c
+++ b/drivers/firmware/efi/runtime-map.c
@@ -166,7 +166,7 @@ int __init efi_runtime_map_init(struct kobject *efi_kobj)
166 if (!efi_enabled(EFI_MEMMAP)) 166 if (!efi_enabled(EFI_MEMMAP))
167 return 0; 167 return 0;
168 168
169 map_entries = kzalloc(efi.memmap.nr_map * sizeof(entry), GFP_KERNEL); 169 map_entries = kcalloc(efi.memmap.nr_map, sizeof(entry), GFP_KERNEL);
170 if (!map_entries) { 170 if (!map_entries) {
171 ret = -ENOMEM; 171 ret = -ENOMEM;
172 goto out; 172 goto out;
diff --git a/drivers/firmware/ti_sci.c b/drivers/firmware/ti_sci.c
index b74a533ef35b..7fa744793bc5 100644
--- a/drivers/firmware/ti_sci.c
+++ b/drivers/firmware/ti_sci.c
@@ -1854,9 +1854,9 @@ static int ti_sci_probe(struct platform_device *pdev)
1854 if (!minfo->xfer_block) 1854 if (!minfo->xfer_block)
1855 return -ENOMEM; 1855 return -ENOMEM;
1856 1856
1857 minfo->xfer_alloc_table = devm_kzalloc(dev, 1857 minfo->xfer_alloc_table = devm_kcalloc(dev,
1858 BITS_TO_LONGS(desc->max_msgs) 1858 BITS_TO_LONGS(desc->max_msgs),
1859 * sizeof(unsigned long), 1859 sizeof(unsigned long),
1860 GFP_KERNEL); 1860 GFP_KERNEL);
1861 if (!minfo->xfer_alloc_table) 1861 if (!minfo->xfer_alloc_table)
1862 return -ENOMEM; 1862 return -ENOMEM;
diff --git a/drivers/fmc/fmc-sdb.c b/drivers/fmc/fmc-sdb.c
index ffdc1762b580..d0e65b86dc22 100644
--- a/drivers/fmc/fmc-sdb.c
+++ b/drivers/fmc/fmc-sdb.c
@@ -48,8 +48,8 @@ static struct sdb_array *__fmc_scan_sdb_tree(struct fmc_device *fmc,
48 arr = kzalloc(sizeof(*arr), GFP_KERNEL); 48 arr = kzalloc(sizeof(*arr), GFP_KERNEL);
49 if (!arr) 49 if (!arr)
50 return ERR_PTR(-ENOMEM); 50 return ERR_PTR(-ENOMEM);
51 arr->record = kzalloc(sizeof(arr->record[0]) * n, GFP_KERNEL); 51 arr->record = kcalloc(n, sizeof(arr->record[0]), GFP_KERNEL);
52 arr->subtree = kzalloc(sizeof(arr->subtree[0]) * n, GFP_KERNEL); 52 arr->subtree = kcalloc(n, sizeof(arr->subtree[0]), GFP_KERNEL);
53 if (!arr->record || !arr->subtree) { 53 if (!arr->record || !arr->subtree) {
54 kfree(arr->record); 54 kfree(arr->record);
55 kfree(arr->subtree); 55 kfree(arr->subtree);
diff --git a/drivers/gpio/gpio-adnp.c b/drivers/gpio/gpio-adnp.c
index 44c09904daa6..91b90c0cea73 100644
--- a/drivers/gpio/gpio-adnp.c
+++ b/drivers/gpio/gpio-adnp.c
@@ -427,7 +427,7 @@ static int adnp_irq_setup(struct adnp *adnp)
427 * is chosen to match the register layout of the hardware in that 427 * is chosen to match the register layout of the hardware in that
428 * each segment contains the corresponding bits for all interrupts. 428 * each segment contains the corresponding bits for all interrupts.
429 */ 429 */
430 adnp->irq_enable = devm_kzalloc(chip->parent, num_regs * 6, 430 adnp->irq_enable = devm_kcalloc(chip->parent, num_regs, 6,
431 GFP_KERNEL); 431 GFP_KERNEL);
432 if (!adnp->irq_enable) 432 if (!adnp->irq_enable)
433 return -ENOMEM; 433 return -ENOMEM;
diff --git a/drivers/gpio/gpio-aspeed.c b/drivers/gpio/gpio-aspeed.c
index 5e89f1c74a33..b31ae16170e7 100644
--- a/drivers/gpio/gpio-aspeed.c
+++ b/drivers/gpio/gpio-aspeed.c
@@ -897,8 +897,8 @@ static int __init aspeed_gpio_probe(struct platform_device *pdev)
897 897
898 /* Allocate a cache of the output registers */ 898 /* Allocate a cache of the output registers */
899 banks = gpio->config->nr_gpios >> 5; 899 banks = gpio->config->nr_gpios >> 5;
900 gpio->dcache = devm_kzalloc(&pdev->dev, 900 gpio->dcache = devm_kcalloc(&pdev->dev,
901 sizeof(u32) * banks, GFP_KERNEL); 901 banks, sizeof(u32), GFP_KERNEL);
902 if (!gpio->dcache) 902 if (!gpio->dcache)
903 return -ENOMEM; 903 return -ENOMEM;
904 904
diff --git a/drivers/gpio/gpio-bcm-kona.c b/drivers/gpio/gpio-bcm-kona.c
index eb8369b21e90..00272fa7cc4f 100644
--- a/drivers/gpio/gpio-bcm-kona.c
+++ b/drivers/gpio/gpio-bcm-kona.c
@@ -601,9 +601,10 @@ static int bcm_kona_gpio_probe(struct platform_device *pdev)
601 GPIO_MAX_BANK_NUM); 601 GPIO_MAX_BANK_NUM);
602 return -ENXIO; 602 return -ENXIO;
603 } 603 }
604 kona_gpio->banks = devm_kzalloc(dev, 604 kona_gpio->banks = devm_kcalloc(dev,
605 kona_gpio->num_bank * 605 kona_gpio->num_bank,
606 sizeof(*kona_gpio->banks), GFP_KERNEL); 606 sizeof(*kona_gpio->banks),
607 GFP_KERNEL);
607 if (!kona_gpio->banks) 608 if (!kona_gpio->banks)
608 return -ENOMEM; 609 return -ENOMEM;
609 610
diff --git a/drivers/gpio/gpio-davinci.c b/drivers/gpio/gpio-davinci.c
index b574ecff7761..035a454eca43 100644
--- a/drivers/gpio/gpio-davinci.c
+++ b/drivers/gpio/gpio-davinci.c
@@ -198,8 +198,8 @@ static int davinci_gpio_probe(struct platform_device *pdev)
198 ngpio = ARCH_NR_GPIOS; 198 ngpio = ARCH_NR_GPIOS;
199 199
200 nbank = DIV_ROUND_UP(ngpio, 32); 200 nbank = DIV_ROUND_UP(ngpio, 32);
201 chips = devm_kzalloc(dev, 201 chips = devm_kcalloc(dev,
202 nbank * sizeof(struct davinci_gpio_controller), 202 nbank, sizeof(struct davinci_gpio_controller),
203 GFP_KERNEL); 203 GFP_KERNEL);
204 if (!chips) 204 if (!chips)
205 return -ENOMEM; 205 return -ENOMEM;
diff --git a/drivers/gpio/gpio-htc-egpio.c b/drivers/gpio/gpio-htc-egpio.c
index 516383934945..ad6e5b518669 100644
--- a/drivers/gpio/gpio-htc-egpio.c
+++ b/drivers/gpio/gpio-htc-egpio.c
@@ -321,8 +321,8 @@ static int __init egpio_probe(struct platform_device *pdev)
321 platform_set_drvdata(pdev, ei); 321 platform_set_drvdata(pdev, ei);
322 322
323 ei->nchips = pdata->num_chips; 323 ei->nchips = pdata->num_chips;
324 ei->chip = devm_kzalloc(&pdev->dev, 324 ei->chip = devm_kcalloc(&pdev->dev,
325 sizeof(struct egpio_chip) * ei->nchips, 325 ei->nchips, sizeof(struct egpio_chip),
326 GFP_KERNEL); 326 GFP_KERNEL);
327 if (!ei->chip) { 327 if (!ei->chip) {
328 ret = -ENOMEM; 328 ret = -ENOMEM;
diff --git a/drivers/gpio/gpio-ml-ioh.c b/drivers/gpio/gpio-ml-ioh.c
index e2bee27eb526..b23d9a36be1f 100644
--- a/drivers/gpio/gpio-ml-ioh.c
+++ b/drivers/gpio/gpio-ml-ioh.c
@@ -443,7 +443,7 @@ static int ioh_gpio_probe(struct pci_dev *pdev,
443 goto err_iomap; 443 goto err_iomap;
444 } 444 }
445 445
446 chip_save = kzalloc(sizeof(*chip) * 8, GFP_KERNEL); 446 chip_save = kcalloc(8, sizeof(*chip), GFP_KERNEL);
447 if (chip_save == NULL) { 447 if (chip_save == NULL) {
448 ret = -ENOMEM; 448 ret = -ENOMEM;
449 goto err_kzalloc; 449 goto err_kzalloc;
diff --git a/drivers/gpio/gpio-thunderx.c b/drivers/gpio/gpio-thunderx.c
index d16e9d4a129b..1306722faa5a 100644
--- a/drivers/gpio/gpio-thunderx.c
+++ b/drivers/gpio/gpio-thunderx.c
@@ -504,16 +504,17 @@ static int thunderx_gpio_probe(struct pci_dev *pdev,
504 txgpio->base_msi = (c >> 8) & 0xff; 504 txgpio->base_msi = (c >> 8) & 0xff;
505 } 505 }
506 506
507 txgpio->msix_entries = devm_kzalloc(dev, 507 txgpio->msix_entries = devm_kcalloc(dev,
508 sizeof(struct msix_entry) * ngpio, 508 ngpio, sizeof(struct msix_entry),
509 GFP_KERNEL); 509 GFP_KERNEL);
510 if (!txgpio->msix_entries) { 510 if (!txgpio->msix_entries) {
511 err = -ENOMEM; 511 err = -ENOMEM;
512 goto out; 512 goto out;
513 } 513 }
514 514
515 txgpio->line_entries = devm_kzalloc(dev, 515 txgpio->line_entries = devm_kcalloc(dev,
516 sizeof(struct thunderx_line) * ngpio, 516 ngpio,
517 sizeof(struct thunderx_line),
517 GFP_KERNEL); 518 GFP_KERNEL);
518 if (!txgpio->line_entries) { 519 if (!txgpio->line_entries) {
519 err = -ENOMEM; 520 err = -ENOMEM;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c
index 428e5eb3444f..f4c474a95875 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c
@@ -310,20 +310,20 @@ static int acp_hw_init(void *handle)
310 pm_genpd_init(&adev->acp.acp_genpd->gpd, NULL, false); 310 pm_genpd_init(&adev->acp.acp_genpd->gpd, NULL, false);
311 } 311 }
312 312
313 adev->acp.acp_cell = kzalloc(sizeof(struct mfd_cell) * ACP_DEVS, 313 adev->acp.acp_cell = kcalloc(ACP_DEVS, sizeof(struct mfd_cell),
314 GFP_KERNEL); 314 GFP_KERNEL);
315 315
316 if (adev->acp.acp_cell == NULL) 316 if (adev->acp.acp_cell == NULL)
317 return -ENOMEM; 317 return -ENOMEM;
318 318
319 adev->acp.acp_res = kzalloc(sizeof(struct resource) * 4, GFP_KERNEL); 319 adev->acp.acp_res = kcalloc(4, sizeof(struct resource), GFP_KERNEL);
320 320
321 if (adev->acp.acp_res == NULL) { 321 if (adev->acp.acp_res == NULL) {
322 kfree(adev->acp.acp_cell); 322 kfree(adev->acp.acp_cell);
323 return -ENOMEM; 323 return -ENOMEM;
324 } 324 }
325 325
326 i2s_pdata = kzalloc(sizeof(struct i2s_platform_data) * 2, GFP_KERNEL); 326 i2s_pdata = kcalloc(2, sizeof(struct i2s_platform_data), GFP_KERNEL);
327 if (i2s_pdata == NULL) { 327 if (i2s_pdata == NULL) {
328 kfree(adev->acp.acp_res); 328 kfree(adev->acp.acp_res);
329 kfree(adev->acp.acp_cell); 329 kfree(adev->acp.acp_cell);
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 0ff36d45a597..ea79908dac4c 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c
@@ -407,7 +407,7 @@ static int kgd_hqd_dump(struct kgd_dev *kgd,
407 (*dump)[i++][1] = RREG32(addr); \ 407 (*dump)[i++][1] = RREG32(addr); \
408 } while (0) 408 } while (0)
409 409
410 *dump = kmalloc(HQD_N_REGS*2*sizeof(uint32_t), GFP_KERNEL); 410 *dump = kmalloc_array(HQD_N_REGS * 2, sizeof(uint32_t), GFP_KERNEL);
411 if (*dump == NULL) 411 if (*dump == NULL)
412 return -ENOMEM; 412 return -ENOMEM;
413 413
@@ -504,7 +504,7 @@ static int kgd_hqd_sdma_dump(struct kgd_dev *kgd,
504#undef HQD_N_REGS 504#undef HQD_N_REGS
505#define HQD_N_REGS (19+4) 505#define HQD_N_REGS (19+4)
506 506
507 *dump = kmalloc(HQD_N_REGS*2*sizeof(uint32_t), GFP_KERNEL); 507 *dump = kmalloc_array(HQD_N_REGS * 2, sizeof(uint32_t), GFP_KERNEL);
508 if (*dump == NULL) 508 if (*dump == NULL)
509 return -ENOMEM; 509 return -ENOMEM;
510 510
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 6ef9762b4b00..19dd665e7307 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c
@@ -395,7 +395,7 @@ static int kgd_hqd_dump(struct kgd_dev *kgd,
395 (*dump)[i++][1] = RREG32(addr); \ 395 (*dump)[i++][1] = RREG32(addr); \
396 } while (0) 396 } while (0)
397 397
398 *dump = kmalloc(HQD_N_REGS*2*sizeof(uint32_t), GFP_KERNEL); 398 *dump = kmalloc_array(HQD_N_REGS * 2, sizeof(uint32_t), GFP_KERNEL);
399 if (*dump == NULL) 399 if (*dump == NULL)
400 return -ENOMEM; 400 return -ENOMEM;
401 401
@@ -491,7 +491,7 @@ static int kgd_hqd_sdma_dump(struct kgd_dev *kgd,
491#undef HQD_N_REGS 491#undef HQD_N_REGS
492#define HQD_N_REGS (19+4+2+3+7) 492#define HQD_N_REGS (19+4+2+3+7)
493 493
494 *dump = kmalloc(HQD_N_REGS*2*sizeof(uint32_t), GFP_KERNEL); 494 *dump = kmalloc_array(HQD_N_REGS * 2, sizeof(uint32_t), GFP_KERNEL);
495 if (*dump == NULL) 495 if (*dump == NULL)
496 return -ENOMEM; 496 return -ENOMEM;
497 497
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 f0c0d3953f69..1db60aa5b7f0 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c
@@ -504,7 +504,7 @@ static int kgd_hqd_dump(struct kgd_dev *kgd,
504 (*dump)[i++][1] = RREG32(addr); \ 504 (*dump)[i++][1] = RREG32(addr); \
505 } while (0) 505 } while (0)
506 506
507 *dump = kmalloc(HQD_N_REGS*2*sizeof(uint32_t), GFP_KERNEL); 507 *dump = kmalloc_array(HQD_N_REGS * 2, sizeof(uint32_t), GFP_KERNEL);
508 if (*dump == NULL) 508 if (*dump == NULL)
509 return -ENOMEM; 509 return -ENOMEM;
510 510
@@ -606,7 +606,7 @@ static int kgd_hqd_sdma_dump(struct kgd_dev *kgd,
606#undef HQD_N_REGS 606#undef HQD_N_REGS
607#define HQD_N_REGS (19+6+7+10) 607#define HQD_N_REGS (19+6+7+10)
608 608
609 *dump = kmalloc(HQD_N_REGS*2*sizeof(uint32_t), GFP_KERNEL); 609 *dump = kmalloc_array(HQD_N_REGS * 2, sizeof(uint32_t), GFP_KERNEL);
610 if (*dump == NULL) 610 if (*dump == NULL)
611 return -ENOMEM; 611 return -ENOMEM;
612 612
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.c
index def1010ac05e..77ad59ade85c 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.c
@@ -452,7 +452,7 @@ int amdgpu_parse_extended_power_table(struct amdgpu_device *adev)
452 ATOM_PPLIB_PhaseSheddingLimits_Record *entry; 452 ATOM_PPLIB_PhaseSheddingLimits_Record *entry;
453 453
454 adev->pm.dpm.dyn_state.phase_shedding_limits_table.entries = 454 adev->pm.dpm.dyn_state.phase_shedding_limits_table.entries =
455 kzalloc(psl->ucNumEntries * 455 kcalloc(psl->ucNumEntries,
456 sizeof(struct amdgpu_phase_shedding_limits_entry), 456 sizeof(struct amdgpu_phase_shedding_limits_entry),
457 GFP_KERNEL); 457 GFP_KERNEL);
458 if (!adev->pm.dpm.dyn_state.phase_shedding_limits_table.entries) { 458 if (!adev->pm.dpm.dyn_state.phase_shedding_limits_table.entries) {
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
index 17d6b9fb6d77..dd11b7313ca0 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
@@ -369,7 +369,8 @@ int amdgpu_gart_init(struct amdgpu_device *adev)
369 369
370#ifdef CONFIG_DRM_AMDGPU_GART_DEBUGFS 370#ifdef CONFIG_DRM_AMDGPU_GART_DEBUGFS
371 /* Allocate pages table */ 371 /* Allocate pages table */
372 adev->gart.pages = vzalloc(sizeof(void *) * adev->gart.num_cpu_pages); 372 adev->gart.pages = vzalloc(array_size(sizeof(void *),
373 adev->gart.num_cpu_pages));
373 if (adev->gart.pages == NULL) 374 if (adev->gart.pages == NULL)
374 return -ENOMEM; 375 return -ENOMEM;
375#endif 376#endif
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_test.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_test.c
index d167e8ab76d3..e3878256743a 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_test.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_test.c
@@ -53,7 +53,7 @@ static void amdgpu_do_test_moves(struct amdgpu_device *adev)
53 n -= adev->irq.ih.ring_size; 53 n -= adev->irq.ih.ring_size;
54 n /= size; 54 n /= size;
55 55
56 gtt_obj = kzalloc(n * sizeof(*gtt_obj), GFP_KERNEL); 56 gtt_obj = kcalloc(n, sizeof(*gtt_obj), GFP_KERNEL);
57 if (!gtt_obj) { 57 if (!gtt_obj) {
58 DRM_ERROR("Failed to allocate %d pointers\n", n); 58 DRM_ERROR("Failed to allocate %d pointers\n", n);
59 r = 1; 59 r = 1;
diff --git a/drivers/gpu/drm/amd/amdgpu/atom.c b/drivers/gpu/drm/amd/amdgpu/atom.c
index 69500a8b4e2d..e9934de1b9cf 100644
--- a/drivers/gpu/drm/amd/amdgpu/atom.c
+++ b/drivers/gpu/drm/amd/amdgpu/atom.c
@@ -1221,7 +1221,7 @@ static int amdgpu_atom_execute_table_locked(struct atom_context *ctx, int index,
1221 ectx.abort = false; 1221 ectx.abort = false;
1222 ectx.last_jump = 0; 1222 ectx.last_jump = 0;
1223 if (ws) 1223 if (ws)
1224 ectx.ws = kzalloc(4 * ws, GFP_KERNEL); 1224 ectx.ws = kcalloc(4, ws, GFP_KERNEL);
1225 else 1225 else
1226 ectx.ws = NULL; 1226 ectx.ws = NULL;
1227 1227
diff --git a/drivers/gpu/drm/amd/amdgpu/ci_dpm.c b/drivers/gpu/drm/amd/amdgpu/ci_dpm.c
index a266dcf5daed..7fbad2f5f0bd 100644
--- a/drivers/gpu/drm/amd/amdgpu/ci_dpm.c
+++ b/drivers/gpu/drm/amd/amdgpu/ci_dpm.c
@@ -5679,8 +5679,9 @@ static int ci_parse_power_table(struct amdgpu_device *adev)
5679 (mode_info->atom_context->bios + data_offset + 5679 (mode_info->atom_context->bios + data_offset +
5680 le16_to_cpu(power_info->pplib.usNonClockInfoArrayOffset)); 5680 le16_to_cpu(power_info->pplib.usNonClockInfoArrayOffset));
5681 5681
5682 adev->pm.dpm.ps = kzalloc(sizeof(struct amdgpu_ps) * 5682 adev->pm.dpm.ps = kcalloc(state_array->ucNumEntries,
5683 state_array->ucNumEntries, GFP_KERNEL); 5683 sizeof(struct amdgpu_ps),
5684 GFP_KERNEL);
5684 if (!adev->pm.dpm.ps) 5685 if (!adev->pm.dpm.ps)
5685 return -ENOMEM; 5686 return -ENOMEM;
5686 power_state_offset = (u8 *)state_array->states; 5687 power_state_offset = (u8 *)state_array->states;
@@ -5927,7 +5928,9 @@ static int ci_dpm_init(struct amdgpu_device *adev)
5927 ci_set_private_data_variables_based_on_pptable(adev); 5928 ci_set_private_data_variables_based_on_pptable(adev);
5928 5929
5929 adev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries = 5930 adev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries =
5930 kzalloc(4 * sizeof(struct amdgpu_clock_voltage_dependency_entry), GFP_KERNEL); 5931 kcalloc(4,
5932 sizeof(struct amdgpu_clock_voltage_dependency_entry),
5933 GFP_KERNEL);
5931 if (!adev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries) { 5934 if (!adev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries) {
5932 ci_dpm_fini(adev); 5935 ci_dpm_fini(adev);
5933 return -ENOMEM; 5936 return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/amdgpu/kv_dpm.c b/drivers/gpu/drm/amd/amdgpu/kv_dpm.c
index 17f7f074cedc..7a1e77c93bf1 100644
--- a/drivers/gpu/drm/amd/amdgpu/kv_dpm.c
+++ b/drivers/gpu/drm/amd/amdgpu/kv_dpm.c
@@ -2727,8 +2727,9 @@ static int kv_parse_power_table(struct amdgpu_device *adev)
2727 (mode_info->atom_context->bios + data_offset + 2727 (mode_info->atom_context->bios + data_offset +
2728 le16_to_cpu(power_info->pplib.usNonClockInfoArrayOffset)); 2728 le16_to_cpu(power_info->pplib.usNonClockInfoArrayOffset));
2729 2729
2730 adev->pm.dpm.ps = kzalloc(sizeof(struct amdgpu_ps) * 2730 adev->pm.dpm.ps = kcalloc(state_array->ucNumEntries,
2731 state_array->ucNumEntries, GFP_KERNEL); 2731 sizeof(struct amdgpu_ps),
2732 GFP_KERNEL);
2732 if (!adev->pm.dpm.ps) 2733 if (!adev->pm.dpm.ps)
2733 return -ENOMEM; 2734 return -ENOMEM;
2734 power_state_offset = (u8 *)state_array->states; 2735 power_state_offset = (u8 *)state_array->states;
diff --git a/drivers/gpu/drm/amd/amdgpu/si_dpm.c b/drivers/gpu/drm/amd/amdgpu/si_dpm.c
index b12d7c9d42a0..5c97a3671726 100644
--- a/drivers/gpu/drm/amd/amdgpu/si_dpm.c
+++ b/drivers/gpu/drm/amd/amdgpu/si_dpm.c
@@ -7242,8 +7242,9 @@ static int si_parse_power_table(struct amdgpu_device *adev)
7242 (mode_info->atom_context->bios + data_offset + 7242 (mode_info->atom_context->bios + data_offset +
7243 le16_to_cpu(power_info->pplib.usNonClockInfoArrayOffset)); 7243 le16_to_cpu(power_info->pplib.usNonClockInfoArrayOffset));
7244 7244
7245 adev->pm.dpm.ps = kzalloc(sizeof(struct amdgpu_ps) * 7245 adev->pm.dpm.ps = kcalloc(state_array->ucNumEntries,
7246 state_array->ucNumEntries, GFP_KERNEL); 7246 sizeof(struct amdgpu_ps),
7247 GFP_KERNEL);
7247 if (!adev->pm.dpm.ps) 7248 if (!adev->pm.dpm.ps)
7248 return -ENOMEM; 7249 return -ENOMEM;
7249 power_state_offset = (u8 *)state_array->states; 7250 power_state_offset = (u8 *)state_array->states;
@@ -7346,7 +7347,9 @@ static int si_dpm_init(struct amdgpu_device *adev)
7346 return ret; 7347 return ret;
7347 7348
7348 adev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries = 7349 adev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries =
7349 kzalloc(4 * sizeof(struct amdgpu_clock_voltage_dependency_entry), GFP_KERNEL); 7350 kcalloc(4,
7351 sizeof(struct amdgpu_clock_voltage_dependency_entry),
7352 GFP_KERNEL);
7350 if (!adev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries) { 7353 if (!adev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries) {
7351 amdgpu_free_extended_power_table(adev); 7354 amdgpu_free_extended_power_table(adev);
7352 return -ENOMEM; 7355 return -ENOMEM;
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 bd449351803f..ec304b1a5973 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
@@ -435,7 +435,7 @@ bool dm_helpers_submit_i2c(
435 return false; 435 return false;
436 } 436 }
437 437
438 msgs = kzalloc(num * sizeof(struct i2c_msg), GFP_KERNEL); 438 msgs = kcalloc(num, sizeof(struct i2c_msg), GFP_KERNEL);
439 439
440 if (!msgs) 440 if (!msgs)
441 return false; 441 return false;
diff --git a/drivers/gpu/drm/amd/display/dc/basics/logger.c b/drivers/gpu/drm/amd/display/dc/basics/logger.c
index 738a818d58d1..0866874ae8c6 100644
--- a/drivers/gpu/drm/amd/display/dc/basics/logger.c
+++ b/drivers/gpu/drm/amd/display/dc/basics/logger.c
@@ -364,7 +364,7 @@ void dm_logger_open(
364 entry->type = log_type; 364 entry->type = log_type;
365 entry->logger = logger; 365 entry->logger = logger;
366 366
367 entry->buf = kzalloc(DAL_LOGGER_BUFFER_MAX_SIZE * sizeof(char), 367 entry->buf = kzalloc(DAL_LOGGER_BUFFER_MAX_SIZE,
368 GFP_KERNEL); 368 GFP_KERNEL);
369 369
370 entry->buf_offset = 0; 370 entry->buf_offset = 0;
diff --git a/drivers/gpu/drm/amd/display/dc/basics/vector.c b/drivers/gpu/drm/amd/display/dc/basics/vector.c
index 217b8f1f7bf6..d28e9cf0e961 100644
--- a/drivers/gpu/drm/amd/display/dc/basics/vector.c
+++ b/drivers/gpu/drm/amd/display/dc/basics/vector.c
@@ -40,7 +40,7 @@ bool dal_vector_construct(
40 return false; 40 return false;
41 } 41 }
42 42
43 vector->container = kzalloc(struct_size * capacity, GFP_KERNEL); 43 vector->container = kcalloc(capacity, struct_size, GFP_KERNEL);
44 if (vector->container == NULL) 44 if (vector->container == NULL)
45 return false; 45 return false;
46 vector->capacity = capacity; 46 vector->capacity = capacity;
@@ -67,7 +67,7 @@ bool dal_vector_presized_costruct(
67 return false; 67 return false;
68 } 68 }
69 69
70 vector->container = kzalloc(struct_size * count, GFP_KERNEL); 70 vector->container = kcalloc(count, struct_size, GFP_KERNEL);
71 71
72 if (vector->container == NULL) 72 if (vector->container == NULL)
73 return false; 73 return false;
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 599c7ab6befe..88b09dd758ba 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
@@ -1079,13 +1079,15 @@ static void get_ss_info_from_atombios(
1079 if (*ss_entries_num == 0) 1079 if (*ss_entries_num == 0)
1080 return; 1080 return;
1081 1081
1082 ss_info = kzalloc(sizeof(struct spread_spectrum_info) * (*ss_entries_num), 1082 ss_info = kcalloc(*ss_entries_num,
1083 sizeof(struct spread_spectrum_info),
1083 GFP_KERNEL); 1084 GFP_KERNEL);
1084 ss_info_cur = ss_info; 1085 ss_info_cur = ss_info;
1085 if (ss_info == NULL) 1086 if (ss_info == NULL)
1086 return; 1087 return;
1087 1088
1088 ss_data = kzalloc(sizeof(struct spread_spectrum_data) * (*ss_entries_num), 1089 ss_data = kcalloc(*ss_entries_num,
1090 sizeof(struct spread_spectrum_data),
1089 GFP_KERNEL); 1091 GFP_KERNEL);
1090 if (ss_data == NULL) 1092 if (ss_data == NULL)
1091 goto out_free_info; 1093 goto out_free_info;
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 80038e0e610f..ab5483c0c502 100644
--- a/drivers/gpu/drm/amd/display/dc/gpio/gpio_service.c
+++ b/drivers/gpu/drm/amd/display/dc/gpio/gpio_service.c
@@ -98,7 +98,8 @@ struct gpio_service *dal_gpio_service_create(
98 if (number_of_bits) { 98 if (number_of_bits) {
99 uint32_t index_of_uint = 0; 99 uint32_t index_of_uint = 0;
100 100
101 slot = kzalloc(number_of_uints * sizeof(uint32_t), 101 slot = kcalloc(number_of_uints,
102 sizeof(uint32_t),
102 GFP_KERNEL); 103 GFP_KERNEL);
103 104
104 if (!slot) { 105 if (!slot) {
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 0cd111d59018..eee0dfad6962 100644
--- a/drivers/gpu/drm/amd/display/modules/color/color_gamma.c
+++ b/drivers/gpu/drm/amd/display/modules/color/color_gamma.c
@@ -1274,19 +1274,22 @@ bool mod_color_calculate_regamma_params(struct dc_transfer_func *output_tf,
1274 1274
1275 output_tf->type = TF_TYPE_DISTRIBUTED_POINTS; 1275 output_tf->type = TF_TYPE_DISTRIBUTED_POINTS;
1276 1276
1277 rgb_user = kvzalloc(sizeof(*rgb_user) * (ramp->num_entries + _EXTRA_POINTS), 1277 rgb_user = kvcalloc(ramp->num_entries + _EXTRA_POINTS,
1278 sizeof(*rgb_user),
1278 GFP_KERNEL); 1279 GFP_KERNEL);
1279 if (!rgb_user) 1280 if (!rgb_user)
1280 goto rgb_user_alloc_fail; 1281 goto rgb_user_alloc_fail;
1281 rgb_regamma = kvzalloc(sizeof(*rgb_regamma) * (MAX_HW_POINTS + _EXTRA_POINTS), 1282 rgb_regamma = kvcalloc(MAX_HW_POINTS + _EXTRA_POINTS,
1283 sizeof(*rgb_regamma),
1282 GFP_KERNEL); 1284 GFP_KERNEL);
1283 if (!rgb_regamma) 1285 if (!rgb_regamma)
1284 goto rgb_regamma_alloc_fail; 1286 goto rgb_regamma_alloc_fail;
1285 axix_x = kvzalloc(sizeof(*axix_x) * (ramp->num_entries + 3), 1287 axix_x = kvcalloc(ramp->num_entries + 3, sizeof(*axix_x),
1286 GFP_KERNEL); 1288 GFP_KERNEL);
1287 if (!axix_x) 1289 if (!axix_x)
1288 goto axix_x_alloc_fail; 1290 goto axix_x_alloc_fail;
1289 coeff = kvzalloc(sizeof(*coeff) * (MAX_HW_POINTS + _EXTRA_POINTS), GFP_KERNEL); 1291 coeff = kvcalloc(MAX_HW_POINTS + _EXTRA_POINTS, sizeof(*coeff),
1292 GFP_KERNEL);
1290 if (!coeff) 1293 if (!coeff)
1291 goto coeff_alloc_fail; 1294 goto coeff_alloc_fail;
1292 1295
@@ -1413,13 +1416,15 @@ bool calculate_user_regamma_ramp(struct dc_transfer_func *output_tf,
1413 1416
1414 output_tf->type = TF_TYPE_DISTRIBUTED_POINTS; 1417 output_tf->type = TF_TYPE_DISTRIBUTED_POINTS;
1415 1418
1416 rgb_user = kzalloc(sizeof(*rgb_user) * (GAMMA_RGB_256_ENTRIES + _EXTRA_POINTS), 1419 rgb_user = kcalloc(GAMMA_RGB_256_ENTRIES + _EXTRA_POINTS,
1417 GFP_KERNEL); 1420 sizeof(*rgb_user),
1421 GFP_KERNEL);
1418 if (!rgb_user) 1422 if (!rgb_user)
1419 goto rgb_user_alloc_fail; 1423 goto rgb_user_alloc_fail;
1420 1424
1421 rgb_regamma = kzalloc(sizeof(*rgb_regamma) * (MAX_HW_POINTS + _EXTRA_POINTS), 1425 rgb_regamma = kcalloc(MAX_HW_POINTS + _EXTRA_POINTS,
1422 GFP_KERNEL); 1426 sizeof(*rgb_regamma),
1427 GFP_KERNEL);
1423 if (!rgb_regamma) 1428 if (!rgb_regamma)
1424 goto rgb_regamma_alloc_fail; 1429 goto rgb_regamma_alloc_fail;
1425 1430
@@ -1480,19 +1485,21 @@ bool mod_color_calculate_degamma_params(struct dc_transfer_func *input_tf,
1480 1485
1481 input_tf->type = TF_TYPE_DISTRIBUTED_POINTS; 1486 input_tf->type = TF_TYPE_DISTRIBUTED_POINTS;
1482 1487
1483 rgb_user = kvzalloc(sizeof(*rgb_user) * (ramp->num_entries + _EXTRA_POINTS), 1488 rgb_user = kvcalloc(ramp->num_entries + _EXTRA_POINTS,
1489 sizeof(*rgb_user),
1484 GFP_KERNEL); 1490 GFP_KERNEL);
1485 if (!rgb_user) 1491 if (!rgb_user)
1486 goto rgb_user_alloc_fail; 1492 goto rgb_user_alloc_fail;
1487 curve = kvzalloc(sizeof(*curve) * (MAX_HW_POINTS + _EXTRA_POINTS), 1493 curve = kvcalloc(MAX_HW_POINTS + _EXTRA_POINTS, sizeof(*curve),
1488 GFP_KERNEL); 1494 GFP_KERNEL);
1489 if (!curve) 1495 if (!curve)
1490 goto curve_alloc_fail; 1496 goto curve_alloc_fail;
1491 axix_x = kvzalloc(sizeof(*axix_x) * (ramp->num_entries + _EXTRA_POINTS), 1497 axix_x = kvcalloc(ramp->num_entries + _EXTRA_POINTS, sizeof(*axix_x),
1492 GFP_KERNEL); 1498 GFP_KERNEL);
1493 if (!axix_x) 1499 if (!axix_x)
1494 goto axix_x_alloc_fail; 1500 goto axix_x_alloc_fail;
1495 coeff = kvzalloc(sizeof(*coeff) * (MAX_HW_POINTS + _EXTRA_POINTS), GFP_KERNEL); 1501 coeff = kvcalloc(MAX_HW_POINTS + _EXTRA_POINTS, sizeof(*coeff),
1502 GFP_KERNEL);
1496 if (!coeff) 1503 if (!coeff)
1497 goto coeff_alloc_fail; 1504 goto coeff_alloc_fail;
1498 1505
@@ -1569,8 +1576,8 @@ bool mod_color_calculate_curve(enum dc_transfer_func_predefined trans,
1569 } 1576 }
1570 ret = true; 1577 ret = true;
1571 } else if (trans == TRANSFER_FUNCTION_PQ) { 1578 } else if (trans == TRANSFER_FUNCTION_PQ) {
1572 rgb_regamma = kvzalloc(sizeof(*rgb_regamma) * 1579 rgb_regamma = kvcalloc(MAX_HW_POINTS + _EXTRA_POINTS,
1573 (MAX_HW_POINTS + _EXTRA_POINTS), 1580 sizeof(*rgb_regamma),
1574 GFP_KERNEL); 1581 GFP_KERNEL);
1575 if (!rgb_regamma) 1582 if (!rgb_regamma)
1576 goto rgb_regamma_alloc_fail; 1583 goto rgb_regamma_alloc_fail;
@@ -1594,8 +1601,8 @@ bool mod_color_calculate_curve(enum dc_transfer_func_predefined trans,
1594 kvfree(rgb_regamma); 1601 kvfree(rgb_regamma);
1595 } else if (trans == TRANSFER_FUNCTION_SRGB || 1602 } else if (trans == TRANSFER_FUNCTION_SRGB ||
1596 trans == TRANSFER_FUNCTION_BT709) { 1603 trans == TRANSFER_FUNCTION_BT709) {
1597 rgb_regamma = kvzalloc(sizeof(*rgb_regamma) * 1604 rgb_regamma = kvcalloc(MAX_HW_POINTS + _EXTRA_POINTS,
1598 (MAX_HW_POINTS + _EXTRA_POINTS), 1605 sizeof(*rgb_regamma),
1599 GFP_KERNEL); 1606 GFP_KERNEL);
1600 if (!rgb_regamma) 1607 if (!rgb_regamma)
1601 goto rgb_regamma_alloc_fail; 1608 goto rgb_regamma_alloc_fail;
@@ -1638,8 +1645,8 @@ bool mod_color_calculate_degamma_curve(enum dc_transfer_func_predefined trans,
1638 } 1645 }
1639 ret = true; 1646 ret = true;
1640 } else if (trans == TRANSFER_FUNCTION_PQ) { 1647 } else if (trans == TRANSFER_FUNCTION_PQ) {
1641 rgb_degamma = kvzalloc(sizeof(*rgb_degamma) * 1648 rgb_degamma = kvcalloc(MAX_HW_POINTS + _EXTRA_POINTS,
1642 (MAX_HW_POINTS + _EXTRA_POINTS), 1649 sizeof(*rgb_degamma),
1643 GFP_KERNEL); 1650 GFP_KERNEL);
1644 if (!rgb_degamma) 1651 if (!rgb_degamma)
1645 goto rgb_degamma_alloc_fail; 1652 goto rgb_degamma_alloc_fail;
@@ -1658,8 +1665,8 @@ bool mod_color_calculate_degamma_curve(enum dc_transfer_func_predefined trans,
1658 kvfree(rgb_degamma); 1665 kvfree(rgb_degamma);
1659 } else if (trans == TRANSFER_FUNCTION_SRGB || 1666 } else if (trans == TRANSFER_FUNCTION_SRGB ||
1660 trans == TRANSFER_FUNCTION_BT709) { 1667 trans == TRANSFER_FUNCTION_BT709) {
1661 rgb_degamma = kvzalloc(sizeof(*rgb_degamma) * 1668 rgb_degamma = kvcalloc(MAX_HW_POINTS + _EXTRA_POINTS,
1662 (MAX_HW_POINTS + _EXTRA_POINTS), 1669 sizeof(*rgb_degamma),
1663 GFP_KERNEL); 1670 GFP_KERNEL);
1664 if (!rgb_degamma) 1671 if (!rgb_degamma)
1665 goto rgb_degamma_alloc_fail; 1672 goto rgb_degamma_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 27d4003aa2c7..fa344ceafc17 100644
--- a/drivers/gpu/drm/amd/display/modules/freesync/freesync.c
+++ b/drivers/gpu/drm/amd/display/modules/freesync/freesync.c
@@ -155,7 +155,8 @@ struct mod_freesync *mod_freesync_create(struct dc *dc)
155 if (core_freesync == NULL) 155 if (core_freesync == NULL)
156 goto fail_alloc_context; 156 goto fail_alloc_context;
157 157
158 core_freesync->map = kzalloc(sizeof(struct freesync_entity) * MOD_FREESYNC_MAX_CONCURRENT_STREAMS, 158 core_freesync->map = kcalloc(MOD_FREESYNC_MAX_CONCURRENT_STREAMS,
159 sizeof(struct freesync_entity),
159 GFP_KERNEL); 160 GFP_KERNEL);
160 161
161 if (core_freesync->map == NULL) 162 if (core_freesync->map == NULL)
diff --git a/drivers/gpu/drm/amd/display/modules/stats/stats.c b/drivers/gpu/drm/amd/display/modules/stats/stats.c
index 3f7d47fdc367..710852ad03f3 100644
--- a/drivers/gpu/drm/amd/display/modules/stats/stats.c
+++ b/drivers/gpu/drm/amd/display/modules/stats/stats.c
@@ -141,19 +141,17 @@ struct mod_stats *mod_stats_create(struct dc *dc)
141 else 141 else
142 core_stats->entries = reg_data; 142 core_stats->entries = reg_data;
143 } 143 }
144 core_stats->time = kzalloc( 144 core_stats->time = kcalloc(core_stats->entries,
145 sizeof(struct stats_time_cache) * 145 sizeof(struct stats_time_cache),
146 core_stats->entries,
147 GFP_KERNEL); 146 GFP_KERNEL);
148 147
149 if (core_stats->time == NULL) 148 if (core_stats->time == NULL)
150 goto fail_construct_time; 149 goto fail_construct_time;
151 150
152 core_stats->event_entries = DAL_STATS_EVENT_ENTRIES_DEFAULT; 151 core_stats->event_entries = DAL_STATS_EVENT_ENTRIES_DEFAULT;
153 core_stats->events = kzalloc( 152 core_stats->events = kcalloc(core_stats->event_entries,
154 sizeof(struct stats_event_cache) * 153 sizeof(struct stats_event_cache),
155 core_stats->event_entries, 154 GFP_KERNEL);
156 GFP_KERNEL);
157 155
158 if (core_stats->events == NULL) 156 if (core_stats->events == NULL)
159 goto fail_construct_events; 157 goto fail_construct_events;
diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/pp_psm.c b/drivers/gpu/drm/amd/powerplay/hwmgr/pp_psm.c
index 0af13c154328..e45a1fcc7f08 100644
--- a/drivers/gpu/drm/amd/powerplay/hwmgr/pp_psm.c
+++ b/drivers/gpu/drm/amd/powerplay/hwmgr/pp_psm.c
@@ -50,7 +50,7 @@ int psm_init_power_state_table(struct pp_hwmgr *hwmgr)
50 return 0; 50 return 0;
51 } 51 }
52 52
53 hwmgr->ps = kzalloc(size * table_entries, GFP_KERNEL); 53 hwmgr->ps = kcalloc(table_entries, size, GFP_KERNEL);
54 if (hwmgr->ps == NULL) 54 if (hwmgr->ps == NULL)
55 return -ENOMEM; 55 return -ENOMEM;
56 56
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 40e1e24f2ff0..a5808382bdf0 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -1633,7 +1633,8 @@ struct edid *drm_do_get_edid(struct drm_connector *connector,
1633 edid[EDID_LENGTH-1] += edid[0x7e] - valid_extensions; 1633 edid[EDID_LENGTH-1] += edid[0x7e] - valid_extensions;
1634 edid[0x7e] = valid_extensions; 1634 edid[0x7e] = valid_extensions;
1635 1635
1636 new = kmalloc((valid_extensions + 1) * EDID_LENGTH, GFP_KERNEL); 1636 new = kmalloc_array(valid_extensions + 1, EDID_LENGTH,
1637 GFP_KERNEL);
1637 if (!new) 1638 if (!new)
1638 goto out; 1639 goto out;
1639 1640
diff --git a/drivers/gpu/drm/drm_hashtab.c b/drivers/gpu/drm/drm_hashtab.c
index dae18e58e79b..c92b00d42ece 100644
--- a/drivers/gpu/drm/drm_hashtab.c
+++ b/drivers/gpu/drm/drm_hashtab.c
@@ -47,7 +47,7 @@ int drm_ht_create(struct drm_open_hash *ht, unsigned int order)
47 if (size <= PAGE_SIZE / sizeof(*ht->table)) 47 if (size <= PAGE_SIZE / sizeof(*ht->table))
48 ht->table = kcalloc(size, sizeof(*ht->table), GFP_KERNEL); 48 ht->table = kcalloc(size, sizeof(*ht->table), GFP_KERNEL);
49 else 49 else
50 ht->table = vzalloc(size*sizeof(*ht->table)); 50 ht->table = vzalloc(array_size(size, sizeof(*ht->table)));
51 if (!ht->table) { 51 if (!ht->table) {
52 DRM_ERROR("Out of memory for hash table\n"); 52 DRM_ERROR("Out of memory for hash table\n");
53 return -ENOMEM; 53 return -ENOMEM;
diff --git a/drivers/gpu/drm/drm_memory.c b/drivers/gpu/drm/drm_memory.c
index 3c54044214db..d69e4fc1ee77 100644
--- a/drivers/gpu/drm/drm_memory.c
+++ b/drivers/gpu/drm/drm_memory.c
@@ -80,7 +80,7 @@ static void *agp_remap(unsigned long offset, unsigned long size,
80 * page-table instead (that's probably faster anyhow...). 80 * page-table instead (that's probably faster anyhow...).
81 */ 81 */
82 /* note: use vmalloc() because num_pages could be large... */ 82 /* note: use vmalloc() because num_pages could be large... */
83 page_map = vmalloc(num_pages * sizeof(struct page *)); 83 page_map = vmalloc(array_size(num_pages, sizeof(struct page *)));
84 if (!page_map) 84 if (!page_map)
85 return NULL; 85 return NULL;
86 86
diff --git a/drivers/gpu/drm/exynos/exynos_drm_dsi.c b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
index 7c3030b7e586..6d29777884f9 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_dsi.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
@@ -1723,8 +1723,8 @@ static int exynos_dsi_probe(struct platform_device *pdev)
1723 return -EPROBE_DEFER; 1723 return -EPROBE_DEFER;
1724 } 1724 }
1725 1725
1726 dsi->clks = devm_kzalloc(dev, 1726 dsi->clks = devm_kcalloc(dev,
1727 sizeof(*dsi->clks) * dsi->driver_data->num_clks, 1727 dsi->driver_data->num_clks, sizeof(*dsi->clks),
1728 GFP_KERNEL); 1728 GFP_KERNEL);
1729 if (!dsi->clks) 1729 if (!dsi->clks)
1730 return -ENOMEM; 1730 return -ENOMEM;
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimc.c b/drivers/gpu/drm/exynos/exynos_drm_fimc.c
index 5ce84025d1cb..6127ef25acd6 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fimc.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fimc.c
@@ -1271,7 +1271,8 @@ static int fimc_probe(struct platform_device *pdev)
1271 1271
1272 /* construct formats/limits array */ 1272 /* construct formats/limits array */
1273 num_formats = ARRAY_SIZE(fimc_formats) + ARRAY_SIZE(fimc_tiled_formats); 1273 num_formats = ARRAY_SIZE(fimc_formats) + ARRAY_SIZE(fimc_tiled_formats);
1274 formats = devm_kzalloc(dev, sizeof(*formats) * num_formats, GFP_KERNEL); 1274 formats = devm_kcalloc(dev, num_formats, sizeof(*formats),
1275 GFP_KERNEL);
1275 if (!formats) 1276 if (!formats)
1276 return -ENOMEM; 1277 return -ENOMEM;
1277 1278
diff --git a/drivers/gpu/drm/exynos/exynos_drm_gsc.c b/drivers/gpu/drm/exynos/exynos_drm_gsc.c
index e99dd1e4ba65..35ac66730563 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_gsc.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_gsc.c
@@ -1202,8 +1202,9 @@ static int gsc_probe(struct platform_device *pdev)
1202 if (!ctx) 1202 if (!ctx)
1203 return -ENOMEM; 1203 return -ENOMEM;
1204 1204
1205 formats = devm_kzalloc(dev, sizeof(*formats) * 1205 formats = devm_kcalloc(dev,
1206 (ARRAY_SIZE(gsc_formats)), GFP_KERNEL); 1206 ARRAY_SIZE(gsc_formats), sizeof(*formats),
1207 GFP_KERNEL);
1207 if (!formats) 1208 if (!formats)
1208 return -ENOMEM; 1209 return -ENOMEM;
1209 1210
diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c b/drivers/gpu/drm/exynos/exynos_hdmi.c
index 09c4bc0b1859..db91932550cf 100644
--- a/drivers/gpu/drm/exynos/exynos_hdmi.c
+++ b/drivers/gpu/drm/exynos/exynos_hdmi.c
@@ -1692,7 +1692,7 @@ static int hdmi_clk_init(struct hdmi_context *hdata)
1692 if (!count) 1692 if (!count)
1693 return 0; 1693 return 0;
1694 1694
1695 clks = devm_kzalloc(dev, sizeof(*clks) * count, GFP_KERNEL); 1695 clks = devm_kcalloc(dev, count, sizeof(*clks), GFP_KERNEL);
1696 if (!clks) 1696 if (!clks)
1697 return -ENOMEM; 1697 return -ENOMEM;
1698 1698
diff --git a/drivers/gpu/drm/gma500/mid_bios.c b/drivers/gpu/drm/gma500/mid_bios.c
index 7171b7475f58..237041a37532 100644
--- a/drivers/gpu/drm/gma500/mid_bios.c
+++ b/drivers/gpu/drm/gma500/mid_bios.c
@@ -239,7 +239,7 @@ static int mid_get_vbt_data_r10(struct drm_psb_private *dev_priv, u32 addr)
239 if (read_vbt_r10(addr, &vbt)) 239 if (read_vbt_r10(addr, &vbt))
240 return -1; 240 return -1;
241 241
242 gct = kmalloc(sizeof(*gct) * vbt.panel_count, GFP_KERNEL); 242 gct = kmalloc_array(vbt.panel_count, sizeof(*gct), GFP_KERNEL);
243 if (!gct) 243 if (!gct)
244 return -ENOMEM; 244 return -ENOMEM;
245 245
diff --git a/drivers/gpu/drm/i915/gvt/gtt.c b/drivers/gpu/drm/i915/gvt/gtt.c
index 78e55aafc8bc..23296547da95 100644
--- a/drivers/gpu/drm/i915/gvt/gtt.c
+++ b/drivers/gpu/drm/i915/gvt/gtt.c
@@ -1585,8 +1585,9 @@ static struct intel_vgpu_mm *intel_vgpu_create_ggtt_mm(struct intel_vgpu *vgpu)
1585 mm->type = INTEL_GVT_MM_GGTT; 1585 mm->type = INTEL_GVT_MM_GGTT;
1586 1586
1587 nr_entries = gvt_ggtt_gm_sz(vgpu->gvt) >> I915_GTT_PAGE_SHIFT; 1587 nr_entries = gvt_ggtt_gm_sz(vgpu->gvt) >> I915_GTT_PAGE_SHIFT;
1588 mm->ggtt_mm.virtual_ggtt = vzalloc(nr_entries * 1588 mm->ggtt_mm.virtual_ggtt =
1589 vgpu->gvt->device_info.gtt_entry_size); 1589 vzalloc(array_size(nr_entries,
1590 vgpu->gvt->device_info.gtt_entry_size));
1590 if (!mm->ggtt_mm.virtual_ggtt) { 1591 if (!mm->ggtt_mm.virtual_ggtt) {
1591 vgpu_free_mm(mm); 1592 vgpu_free_mm(mm);
1592 return ERR_PTR(-ENOMEM); 1593 return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/i915/gvt/mmio.c b/drivers/gpu/drm/i915/gvt/mmio.c
index e4960aff68bd..b31eb36fc102 100644
--- a/drivers/gpu/drm/i915/gvt/mmio.c
+++ b/drivers/gpu/drm/i915/gvt/mmio.c
@@ -267,7 +267,7 @@ int intel_vgpu_init_mmio(struct intel_vgpu *vgpu)
267{ 267{
268 const struct intel_gvt_device_info *info = &vgpu->gvt->device_info; 268 const struct intel_gvt_device_info *info = &vgpu->gvt->device_info;
269 269
270 vgpu->mmio.vreg = vzalloc(info->mmio_size * 2); 270 vgpu->mmio.vreg = vzalloc(array_size(info->mmio_size, 2));
271 if (!vgpu->mmio.vreg) 271 if (!vgpu->mmio.vreg)
272 return -ENOMEM; 272 return -ENOMEM;
273 273
diff --git a/drivers/gpu/drm/i915/gvt/vgpu.c b/drivers/gpu/drm/i915/gvt/vgpu.c
index 2e0a02a80fe4..572a18c2bfb5 100644
--- a/drivers/gpu/drm/i915/gvt/vgpu.c
+++ b/drivers/gpu/drm/i915/gvt/vgpu.c
@@ -121,7 +121,7 @@ int intel_gvt_init_vgpu_types(struct intel_gvt *gvt)
121 high_avail = gvt_hidden_sz(gvt) - HOST_HIGH_GM_SIZE; 121 high_avail = gvt_hidden_sz(gvt) - HOST_HIGH_GM_SIZE;
122 num_types = sizeof(vgpu_types) / sizeof(vgpu_types[0]); 122 num_types = sizeof(vgpu_types) / sizeof(vgpu_types[0]);
123 123
124 gvt->types = kzalloc(num_types * sizeof(struct intel_vgpu_type), 124 gvt->types = kcalloc(num_types, sizeof(struct intel_vgpu_type),
125 GFP_KERNEL); 125 GFP_KERNEL);
126 if (!gvt->types) 126 if (!gvt->types)
127 return -ENOMEM; 127 return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/intel_hdcp.c b/drivers/gpu/drm/i915/intel_hdcp.c
index 2db5da550a1c..0cc6a861bcf8 100644
--- a/drivers/gpu/drm/i915/intel_hdcp.c
+++ b/drivers/gpu/drm/i915/intel_hdcp.c
@@ -429,7 +429,7 @@ int intel_hdcp_auth_downstream(struct intel_digital_port *intel_dig_port,
429 if (num_downstream == 0) 429 if (num_downstream == 0)
430 return -EINVAL; 430 return -EINVAL;
431 431
432 ksv_fifo = kzalloc(num_downstream * DRM_HDCP_KSV_LEN, GFP_KERNEL); 432 ksv_fifo = kcalloc(DRM_HDCP_KSV_LEN, num_downstream, GFP_KERNEL);
433 if (!ksv_fifo) 433 if (!ksv_fifo)
434 return -ENOMEM; 434 return -ENOMEM;
435 435
diff --git a/drivers/gpu/drm/i915/selftests/intel_uncore.c b/drivers/gpu/drm/i915/selftests/intel_uncore.c
index f76f2597df5c..47bc5b2ddb56 100644
--- a/drivers/gpu/drm/i915/selftests/intel_uncore.c
+++ b/drivers/gpu/drm/i915/selftests/intel_uncore.c
@@ -137,7 +137,7 @@ static int intel_uncore_check_forcewake_domains(struct drm_i915_private *dev_pri
137 if (!IS_ENABLED(CONFIG_DRM_I915_SELFTEST_BROKEN)) 137 if (!IS_ENABLED(CONFIG_DRM_I915_SELFTEST_BROKEN))
138 return 0; 138 return 0;
139 139
140 valid = kzalloc(BITS_TO_LONGS(FW_RANGE) * sizeof(*valid), 140 valid = kcalloc(BITS_TO_LONGS(FW_RANGE), sizeof(*valid),
141 GFP_KERNEL); 141 GFP_KERNEL);
142 if (!valid) 142 if (!valid)
143 return -ENOMEM; 143 return -ENOMEM;
diff --git a/drivers/gpu/drm/msm/hdmi/hdmi.c b/drivers/gpu/drm/msm/hdmi/hdmi.c
index e63dc0fb55f8..c79659ca5706 100644
--- a/drivers/gpu/drm/msm/hdmi/hdmi.c
+++ b/drivers/gpu/drm/msm/hdmi/hdmi.c
@@ -157,8 +157,10 @@ static struct hdmi *msm_hdmi_init(struct platform_device *pdev)
157 hdmi->qfprom_mmio = NULL; 157 hdmi->qfprom_mmio = NULL;
158 } 158 }
159 159
160 hdmi->hpd_regs = devm_kzalloc(&pdev->dev, sizeof(hdmi->hpd_regs[0]) * 160 hdmi->hpd_regs = devm_kcalloc(&pdev->dev,
161 config->hpd_reg_cnt, GFP_KERNEL); 161 config->hpd_reg_cnt,
162 sizeof(hdmi->hpd_regs[0]),
163 GFP_KERNEL);
162 if (!hdmi->hpd_regs) { 164 if (!hdmi->hpd_regs) {
163 ret = -ENOMEM; 165 ret = -ENOMEM;
164 goto fail; 166 goto fail;
@@ -178,8 +180,10 @@ static struct hdmi *msm_hdmi_init(struct platform_device *pdev)
178 hdmi->hpd_regs[i] = reg; 180 hdmi->hpd_regs[i] = reg;
179 } 181 }
180 182
181 hdmi->pwr_regs = devm_kzalloc(&pdev->dev, sizeof(hdmi->pwr_regs[0]) * 183 hdmi->pwr_regs = devm_kcalloc(&pdev->dev,
182 config->pwr_reg_cnt, GFP_KERNEL); 184 config->pwr_reg_cnt,
185 sizeof(hdmi->pwr_regs[0]),
186 GFP_KERNEL);
183 if (!hdmi->pwr_regs) { 187 if (!hdmi->pwr_regs) {
184 ret = -ENOMEM; 188 ret = -ENOMEM;
185 goto fail; 189 goto fail;
@@ -199,8 +203,10 @@ static struct hdmi *msm_hdmi_init(struct platform_device *pdev)
199 hdmi->pwr_regs[i] = reg; 203 hdmi->pwr_regs[i] = reg;
200 } 204 }
201 205
202 hdmi->hpd_clks = devm_kzalloc(&pdev->dev, sizeof(hdmi->hpd_clks[0]) * 206 hdmi->hpd_clks = devm_kcalloc(&pdev->dev,
203 config->hpd_clk_cnt, GFP_KERNEL); 207 config->hpd_clk_cnt,
208 sizeof(hdmi->hpd_clks[0]),
209 GFP_KERNEL);
204 if (!hdmi->hpd_clks) { 210 if (!hdmi->hpd_clks) {
205 ret = -ENOMEM; 211 ret = -ENOMEM;
206 goto fail; 212 goto fail;
@@ -219,8 +225,10 @@ static struct hdmi *msm_hdmi_init(struct platform_device *pdev)
219 hdmi->hpd_clks[i] = clk; 225 hdmi->hpd_clks[i] = clk;
220 } 226 }
221 227
222 hdmi->pwr_clks = devm_kzalloc(&pdev->dev, sizeof(hdmi->pwr_clks[0]) * 228 hdmi->pwr_clks = devm_kcalloc(&pdev->dev,
223 config->pwr_clk_cnt, GFP_KERNEL); 229 config->pwr_clk_cnt,
230 sizeof(hdmi->pwr_clks[0]),
231 GFP_KERNEL);
224 if (!hdmi->pwr_clks) { 232 if (!hdmi->pwr_clks) {
225 ret = -ENOMEM; 233 ret = -ENOMEM;
226 goto fail; 234 goto fail;
diff --git a/drivers/gpu/drm/msm/hdmi/hdmi_phy.c b/drivers/gpu/drm/msm/hdmi/hdmi_phy.c
index 5e631392dc85..4157722d6b4d 100644
--- a/drivers/gpu/drm/msm/hdmi/hdmi_phy.c
+++ b/drivers/gpu/drm/msm/hdmi/hdmi_phy.c
@@ -21,12 +21,12 @@ static int msm_hdmi_phy_resource_init(struct hdmi_phy *phy)
21 struct device *dev = &phy->pdev->dev; 21 struct device *dev = &phy->pdev->dev;
22 int i, ret; 22 int i, ret;
23 23
24 phy->regs = devm_kzalloc(dev, sizeof(phy->regs[0]) * cfg->num_regs, 24 phy->regs = devm_kcalloc(dev, cfg->num_regs, sizeof(phy->regs[0]),
25 GFP_KERNEL); 25 GFP_KERNEL);
26 if (!phy->regs) 26 if (!phy->regs)
27 return -ENOMEM; 27 return -ENOMEM;
28 28
29 phy->clks = devm_kzalloc(dev, sizeof(phy->clks[0]) * cfg->num_clks, 29 phy->clks = devm_kcalloc(dev, cfg->num_clks, sizeof(phy->clks[0]),
30 GFP_KERNEL); 30 GFP_KERNEL);
31 if (!phy->clks) 31 if (!phy->clks)
32 return -ENOMEM; 32 return -ENOMEM;
diff --git a/drivers/gpu/drm/nouveau/nv84_fence.c b/drivers/gpu/drm/nouveau/nv84_fence.c
index 090664899247..e721bb2163a0 100644
--- a/drivers/gpu/drm/nouveau/nv84_fence.c
+++ b/drivers/gpu/drm/nouveau/nv84_fence.c
@@ -141,7 +141,7 @@ nv84_fence_suspend(struct nouveau_drm *drm)
141 struct nv84_fence_priv *priv = drm->fence; 141 struct nv84_fence_priv *priv = drm->fence;
142 int i; 142 int i;
143 143
144 priv->suspend = vmalloc(drm->chan.nr * sizeof(u32)); 144 priv->suspend = vmalloc(array_size(sizeof(u32), drm->chan.nr));
145 if (priv->suspend) { 145 if (priv->suspend) {
146 for (i = 0; i < drm->chan.nr; i++) 146 for (i = 0; i < drm->chan.nr; i++)
147 priv->suspend[i] = nouveau_bo_rd32(priv->bo, i*4); 147 priv->suspend[i] = nouveau_bo_rd32(priv->bo, i*4);
diff --git a/drivers/gpu/drm/nouveau/nvif/fifo.c b/drivers/gpu/drm/nouveau/nvif/fifo.c
index 99d4fd17543c..e84a2e2ff043 100644
--- a/drivers/gpu/drm/nouveau/nvif/fifo.c
+++ b/drivers/gpu/drm/nouveau/nvif/fifo.c
@@ -50,8 +50,8 @@ nvif_fifo_runlists(struct nvif_device *device)
50 goto done; 50 goto done;
51 51
52 device->runlists = fls64(a->v.runlists.data); 52 device->runlists = fls64(a->v.runlists.data);
53 device->runlist = kzalloc(sizeof(*device->runlist) * 53 device->runlist = kcalloc(device->runlists, sizeof(*device->runlist),
54 device->runlists, GFP_KERNEL); 54 GFP_KERNEL);
55 if (!device->runlist) { 55 if (!device->runlist) {
56 ret = -ENOMEM; 56 ret = -ENOMEM;
57 goto done; 57 goto done;
diff --git a/drivers/gpu/drm/nouveau/nvif/mmu.c b/drivers/gpu/drm/nouveau/nvif/mmu.c
index 358ac4f3cf91..ae08a1ca8044 100644
--- a/drivers/gpu/drm/nouveau/nvif/mmu.c
+++ b/drivers/gpu/drm/nouveau/nvif/mmu.c
@@ -65,12 +65,15 @@ nvif_mmu_init(struct nvif_object *parent, s32 oclass, struct nvif_mmu *mmu)
65 goto done; 65 goto done;
66 mmu->mem = mems[ret].oclass; 66 mmu->mem = mems[ret].oclass;
67 67
68 mmu->heap = kmalloc(sizeof(*mmu->heap) * mmu->heap_nr, GFP_KERNEL); 68 mmu->heap = kmalloc_array(mmu->heap_nr, sizeof(*mmu->heap),
69 mmu->type = kmalloc(sizeof(*mmu->type) * mmu->type_nr, GFP_KERNEL); 69 GFP_KERNEL);
70 mmu->type = kmalloc_array(mmu->type_nr, sizeof(*mmu->type),
71 GFP_KERNEL);
70 if (ret = -ENOMEM, !mmu->heap || !mmu->type) 72 if (ret = -ENOMEM, !mmu->heap || !mmu->type)
71 goto done; 73 goto done;
72 74
73 mmu->kind = kmalloc(sizeof(*mmu->kind) * mmu->kind_nr, GFP_KERNEL); 75 mmu->kind = kmalloc_array(mmu->kind_nr, sizeof(*mmu->kind),
76 GFP_KERNEL);
74 if (!mmu->kind && mmu->kind_nr) 77 if (!mmu->kind && mmu->kind_nr)
75 goto done; 78 goto done;
76 79
diff --git a/drivers/gpu/drm/nouveau/nvif/object.c b/drivers/gpu/drm/nouveau/nvif/object.c
index 40adfe9b334b..ef3f62840e83 100644
--- a/drivers/gpu/drm/nouveau/nvif/object.c
+++ b/drivers/gpu/drm/nouveau/nvif/object.c
@@ -83,7 +83,7 @@ nvif_object_sclass_get(struct nvif_object *object, struct nvif_sclass **psclass)
83 return ret; 83 return ret;
84 } 84 }
85 85
86 *psclass = kzalloc(sizeof(**psclass) * args->sclass.count, GFP_KERNEL); 86 *psclass = kcalloc(args->sclass.count, sizeof(**psclass), GFP_KERNEL);
87 if (*psclass) { 87 if (*psclass) {
88 for (i = 0; i < args->sclass.count; i++) { 88 for (i = 0; i < args->sclass.count; i++) {
89 (*psclass)[i].oclass = args->sclass.oclass[i].oclass; 89 (*psclass)[i].oclass = args->sclass.oclass[i].oclass;
diff --git a/drivers/gpu/drm/nouveau/nvif/vmm.c b/drivers/gpu/drm/nouveau/nvif/vmm.c
index 191832be6c65..6b9c5776547f 100644
--- a/drivers/gpu/drm/nouveau/nvif/vmm.c
+++ b/drivers/gpu/drm/nouveau/nvif/vmm.c
@@ -138,7 +138,8 @@ nvif_vmm_init(struct nvif_mmu *mmu, s32 oclass, u64 addr, u64 size,
138 vmm->limit = args->size; 138 vmm->limit = args->size;
139 139
140 vmm->page_nr = args->page_nr; 140 vmm->page_nr = args->page_nr;
141 vmm->page = kmalloc(sizeof(*vmm->page) * vmm->page_nr, GFP_KERNEL); 141 vmm->page = kmalloc_array(vmm->page_nr, sizeof(*vmm->page),
142 GFP_KERNEL);
142 if (!vmm->page) { 143 if (!vmm->page) {
143 ret = -ENOMEM; 144 ret = -ENOMEM;
144 goto done; 145 goto done;
diff --git a/drivers/gpu/drm/nouveau/nvkm/core/event.c b/drivers/gpu/drm/nouveau/nvkm/core/event.c
index 4e8d3fa042df..006618d77aa4 100644
--- a/drivers/gpu/drm/nouveau/nvkm/core/event.c
+++ b/drivers/gpu/drm/nouveau/nvkm/core/event.c
@@ -84,7 +84,8 @@ int
84nvkm_event_init(const struct nvkm_event_func *func, int types_nr, int index_nr, 84nvkm_event_init(const struct nvkm_event_func *func, int types_nr, int index_nr,
85 struct nvkm_event *event) 85 struct nvkm_event *event)
86{ 86{
87 event->refs = kzalloc(sizeof(*event->refs) * index_nr * types_nr, 87 event->refs = kzalloc(array3_size(index_nr, types_nr,
88 sizeof(*event->refs)),
88 GFP_KERNEL); 89 GFP_KERNEL);
89 if (!event->refs) 90 if (!event->refs)
90 return -ENOMEM; 91 return -ENOMEM;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
index a99046414a18..afccf9721cf0 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
@@ -910,7 +910,7 @@ gk104_fifo_oneinit(struct nvkm_fifo *base)
910 nvkm_debug(subdev, "%d PBDMA(s)\n", fifo->pbdma_nr); 910 nvkm_debug(subdev, "%d PBDMA(s)\n", fifo->pbdma_nr);
911 911
912 /* Read PBDMA->runlist(s) mapping from HW. */ 912 /* Read PBDMA->runlist(s) mapping from HW. */
913 if (!(map = kzalloc(sizeof(*map) * fifo->pbdma_nr, GFP_KERNEL))) 913 if (!(map = kcalloc(fifo->pbdma_nr, sizeof(*map), GFP_KERNEL)))
914 return -ENOMEM; 914 return -ENOMEM;
915 915
916 for (i = 0; i < fifo->pbdma_nr; i++) 916 for (i = 0; i < fifo->pbdma_nr; i++)
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/iccsense.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/iccsense.c
index 73e463ed55c3..dea444d48f94 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/iccsense.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/iccsense.c
@@ -73,7 +73,8 @@ nvbios_iccsense_parse(struct nvkm_bios *bios, struct nvbios_iccsense *iccsense)
73 } 73 }
74 74
75 iccsense->nr_entry = cnt; 75 iccsense->nr_entry = cnt;
76 iccsense->rail = kmalloc(sizeof(struct pwr_rail_t) * cnt, GFP_KERNEL); 76 iccsense->rail = kmalloc_array(cnt, sizeof(struct pwr_rail_t),
77 GFP_KERNEL);
77 if (!iccsense->rail) 78 if (!iccsense->rail)
78 return -ENOMEM; 79 return -ENOMEM;
79 80
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgt215.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgt215.c
index 920b3d347803..bbfde1cb3a17 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgt215.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgt215.c
@@ -171,7 +171,7 @@ gt215_link_train(struct gt215_ram *ram)
171 return -ENOSYS; 171 return -ENOSYS;
172 172
173 /* XXX: Multiple partitions? */ 173 /* XXX: Multiple partitions? */
174 result = kmalloc(64 * sizeof(u32), GFP_KERNEL); 174 result = kmalloc_array(64, sizeof(u32), GFP_KERNEL);
175 if (!result) 175 if (!result)
176 return -ENOMEM; 176 return -ENOMEM;
177 177
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/mem.c b/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/mem.c
index 39808489f21d..92e363dbbc5a 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/mem.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/mem.c
@@ -191,9 +191,9 @@ nvkm_mem_new_host(struct nvkm_mmu *mmu, int type, u8 page, u64 size,
191 nvkm_memory_ctor(&nvkm_mem_dma, &mem->memory); 191 nvkm_memory_ctor(&nvkm_mem_dma, &mem->memory);
192 size = ALIGN(size, PAGE_SIZE) >> PAGE_SHIFT; 192 size = ALIGN(size, PAGE_SIZE) >> PAGE_SHIFT;
193 193
194 if (!(mem->mem = kvmalloc(sizeof(*mem->mem) * size, GFP_KERNEL))) 194 if (!(mem->mem = kvmalloc_array(size, sizeof(*mem->mem), GFP_KERNEL)))
195 return -ENOMEM; 195 return -ENOMEM;
196 if (!(mem->dma = kvmalloc(sizeof(*mem->dma) * size, GFP_KERNEL))) 196 if (!(mem->dma = kvmalloc_array(size, sizeof(*mem->dma), GFP_KERNEL)))
197 return -ENOMEM; 197 return -ENOMEM;
198 198
199 if (mmu->dma_bits > 32) 199 if (mmu->dma_bits > 32)
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c b/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c
index 1c12e58f44c2..de269eb482dd 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,
59 pgt->sparse = sparse; 59 pgt->sparse = sparse;
60 60
61 if (desc->type == PGD) { 61 if (desc->type == PGD) {
62 pgt->pde = kvzalloc(sizeof(*pgt->pde) * pten, GFP_KERNEL); 62 pgt->pde = kvcalloc(pten, sizeof(*pgt->pde), GFP_KERNEL);
63 if (!pgt->pde) { 63 if (!pgt->pde) {
64 kfree(pgt); 64 kfree(pgt);
65 return NULL; 65 return NULL;
diff --git a/drivers/gpu/drm/omapdrm/omap_dmm_tiler.c b/drivers/gpu/drm/omapdrm/omap_dmm_tiler.c
index 401c02e9e6b2..f92fe205550b 100644
--- a/drivers/gpu/drm/omapdrm/omap_dmm_tiler.c
+++ b/drivers/gpu/drm/omapdrm/omap_dmm_tiler.c
@@ -940,8 +940,8 @@ int tiler_map_show(struct seq_file *s, void *arg)
940 h_adj = omap_dmm->container_height / ydiv; 940 h_adj = omap_dmm->container_height / ydiv;
941 w_adj = omap_dmm->container_width / xdiv; 941 w_adj = omap_dmm->container_width / xdiv;
942 942
943 map = kmalloc(h_adj * sizeof(*map), GFP_KERNEL); 943 map = kmalloc_array(h_adj, sizeof(*map), GFP_KERNEL);
944 global_map = kmalloc((w_adj + 1) * h_adj, GFP_KERNEL); 944 global_map = kmalloc_array(w_adj + 1, h_adj, GFP_KERNEL);
945 945
946 if (!map || !global_map) 946 if (!map || !global_map)
947 goto error; 947 goto error;
diff --git a/drivers/gpu/drm/omapdrm/omap_gem.c b/drivers/gpu/drm/omapdrm/omap_gem.c
index 0faf042b82e1..17a53d207978 100644
--- a/drivers/gpu/drm/omapdrm/omap_gem.c
+++ b/drivers/gpu/drm/omapdrm/omap_gem.c
@@ -244,7 +244,7 @@ static int omap_gem_attach_pages(struct drm_gem_object *obj)
244 * DSS, GPU, etc. are not cache coherent: 244 * DSS, GPU, etc. are not cache coherent:
245 */ 245 */
246 if (omap_obj->flags & (OMAP_BO_WC|OMAP_BO_UNCACHED)) { 246 if (omap_obj->flags & (OMAP_BO_WC|OMAP_BO_UNCACHED)) {
247 addrs = kmalloc(npages * sizeof(*addrs), GFP_KERNEL); 247 addrs = kmalloc_array(npages, sizeof(*addrs), GFP_KERNEL);
248 if (!addrs) { 248 if (!addrs) {
249 ret = -ENOMEM; 249 ret = -ENOMEM;
250 goto free_pages; 250 goto free_pages;
@@ -268,7 +268,7 @@ static int omap_gem_attach_pages(struct drm_gem_object *obj)
268 } 268 }
269 } 269 }
270 } else { 270 } else {
271 addrs = kzalloc(npages * sizeof(*addrs), GFP_KERNEL); 271 addrs = kcalloc(npages, sizeof(*addrs), GFP_KERNEL);
272 if (!addrs) { 272 if (!addrs) {
273 ret = -ENOMEM; 273 ret = -ENOMEM;
274 goto free_pages; 274 goto free_pages;
diff --git a/drivers/gpu/drm/qxl/qxl_fb.c b/drivers/gpu/drm/qxl/qxl_fb.c
index 9a6752606079..ca465c0d49fa 100644
--- a/drivers/gpu/drm/qxl/qxl_fb.c
+++ b/drivers/gpu/drm/qxl/qxl_fb.c
@@ -241,7 +241,7 @@ static int qxlfb_create(struct qxl_fbdev *qfbdev,
241 DRM_DEBUG_DRIVER("%dx%d %d\n", mode_cmd.width, 241 DRM_DEBUG_DRIVER("%dx%d %d\n", mode_cmd.width,
242 mode_cmd.height, mode_cmd.pitches[0]); 242 mode_cmd.height, mode_cmd.pitches[0]);
243 243
244 shadow = vmalloc(mode_cmd.pitches[0] * mode_cmd.height); 244 shadow = vmalloc(array_size(mode_cmd.pitches[0], mode_cmd.height));
245 /* TODO: what's the usual response to memory allocation errors? */ 245 /* TODO: what's the usual response to memory allocation errors? */
246 BUG_ON(!shadow); 246 BUG_ON(!shadow);
247 DRM_DEBUG_DRIVER("surface0 at gpu offset %lld, mmap_offset %lld (virt %p, shadow %p)\n", 247 DRM_DEBUG_DRIVER("surface0 at gpu offset %lld, mmap_offset %lld (virt %p, shadow %p)\n",
diff --git a/drivers/gpu/drm/qxl/qxl_kms.c b/drivers/gpu/drm/qxl/qxl_kms.c
index c5716a0ca3b8..771250aed78d 100644
--- a/drivers/gpu/drm/qxl/qxl_kms.c
+++ b/drivers/gpu/drm/qxl/qxl_kms.c
@@ -200,8 +200,8 @@ int qxl_device_init(struct qxl_device *qdev,
200 (~(uint64_t)0) >> (qdev->slot_id_bits + qdev->slot_gen_bits); 200 (~(uint64_t)0) >> (qdev->slot_id_bits + qdev->slot_gen_bits);
201 201
202 qdev->mem_slots = 202 qdev->mem_slots =
203 kmalloc(qdev->n_mem_slots * sizeof(struct qxl_memslot), 203 kmalloc_array(qdev->n_mem_slots, sizeof(struct qxl_memslot),
204 GFP_KERNEL); 204 GFP_KERNEL);
205 205
206 idr_init(&qdev->release_idr); 206 idr_init(&qdev->release_idr);
207 spin_lock_init(&qdev->release_idr_lock); 207 spin_lock_init(&qdev->release_idr_lock);
diff --git a/drivers/gpu/drm/radeon/atom.c b/drivers/gpu/drm/radeon/atom.c
index 6a2e091aa7b6..e55cbeee7a53 100644
--- a/drivers/gpu/drm/radeon/atom.c
+++ b/drivers/gpu/drm/radeon/atom.c
@@ -1176,7 +1176,7 @@ static int atom_execute_table_locked(struct atom_context *ctx, int index, uint32
1176 ectx.abort = false; 1176 ectx.abort = false;
1177 ectx.last_jump = 0; 1177 ectx.last_jump = 0;
1178 if (ws) 1178 if (ws)
1179 ectx.ws = kzalloc(4 * ws, GFP_KERNEL); 1179 ectx.ws = kcalloc(4, ws, GFP_KERNEL);
1180 else 1180 else
1181 ectx.ws = NULL; 1181 ectx.ws = NULL;
1182 1182
diff --git a/drivers/gpu/drm/radeon/btc_dpm.c b/drivers/gpu/drm/radeon/btc_dpm.c
index 95652e643da1..0aef4937c901 100644
--- a/drivers/gpu/drm/radeon/btc_dpm.c
+++ b/drivers/gpu/drm/radeon/btc_dpm.c
@@ -2581,7 +2581,9 @@ int btc_dpm_init(struct radeon_device *rdev)
2581 return ret; 2581 return ret;
2582 2582
2583 rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries = 2583 rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries =
2584 kzalloc(4 * sizeof(struct radeon_clock_voltage_dependency_entry), GFP_KERNEL); 2584 kcalloc(4,
2585 sizeof(struct radeon_clock_voltage_dependency_entry),
2586 GFP_KERNEL);
2585 if (!rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries) { 2587 if (!rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries) {
2586 r600_free_extended_power_table(rdev); 2588 r600_free_extended_power_table(rdev);
2587 return -ENOMEM; 2589 return -ENOMEM;
diff --git a/drivers/gpu/drm/radeon/ci_dpm.c b/drivers/gpu/drm/radeon/ci_dpm.c
index 7e1b04dc5593..b9302c918271 100644
--- a/drivers/gpu/drm/radeon/ci_dpm.c
+++ b/drivers/gpu/drm/radeon/ci_dpm.c
@@ -5568,8 +5568,9 @@ static int ci_parse_power_table(struct radeon_device *rdev)
5568 (mode_info->atom_context->bios + data_offset + 5568 (mode_info->atom_context->bios + data_offset +
5569 le16_to_cpu(power_info->pplib.usNonClockInfoArrayOffset)); 5569 le16_to_cpu(power_info->pplib.usNonClockInfoArrayOffset));
5570 5570
5571 rdev->pm.dpm.ps = kzalloc(sizeof(struct radeon_ps) * 5571 rdev->pm.dpm.ps = kcalloc(state_array->ucNumEntries,
5572 state_array->ucNumEntries, GFP_KERNEL); 5572 sizeof(struct radeon_ps),
5573 GFP_KERNEL);
5573 if (!rdev->pm.dpm.ps) 5574 if (!rdev->pm.dpm.ps)
5574 return -ENOMEM; 5575 return -ENOMEM;
5575 power_state_offset = (u8 *)state_array->states; 5576 power_state_offset = (u8 *)state_array->states;
@@ -5770,7 +5771,9 @@ int ci_dpm_init(struct radeon_device *rdev)
5770 ci_set_private_data_variables_based_on_pptable(rdev); 5771 ci_set_private_data_variables_based_on_pptable(rdev);
5771 5772
5772 rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries = 5773 rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries =
5773 kzalloc(4 * sizeof(struct radeon_clock_voltage_dependency_entry), GFP_KERNEL); 5774 kcalloc(4,
5775 sizeof(struct radeon_clock_voltage_dependency_entry),
5776 GFP_KERNEL);
5774 if (!rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries) { 5777 if (!rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries) {
5775 ci_dpm_fini(rdev); 5778 ci_dpm_fini(rdev);
5776 return -ENOMEM; 5779 return -ENOMEM;
diff --git a/drivers/gpu/drm/radeon/kv_dpm.c b/drivers/gpu/drm/radeon/kv_dpm.c
index ae1529b0ef6f..f055d6ea3522 100644
--- a/drivers/gpu/drm/radeon/kv_dpm.c
+++ b/drivers/gpu/drm/radeon/kv_dpm.c
@@ -2660,8 +2660,9 @@ static int kv_parse_power_table(struct radeon_device *rdev)
2660 (mode_info->atom_context->bios + data_offset + 2660 (mode_info->atom_context->bios + data_offset +
2661 le16_to_cpu(power_info->pplib.usNonClockInfoArrayOffset)); 2661 le16_to_cpu(power_info->pplib.usNonClockInfoArrayOffset));
2662 2662
2663 rdev->pm.dpm.ps = kzalloc(sizeof(struct radeon_ps) * 2663 rdev->pm.dpm.ps = kcalloc(state_array->ucNumEntries,
2664 state_array->ucNumEntries, GFP_KERNEL); 2664 sizeof(struct radeon_ps),
2665 GFP_KERNEL);
2665 if (!rdev->pm.dpm.ps) 2666 if (!rdev->pm.dpm.ps)
2666 return -ENOMEM; 2667 return -ENOMEM;
2667 power_state_offset = (u8 *)state_array->states; 2668 power_state_offset = (u8 *)state_array->states;
diff --git a/drivers/gpu/drm/radeon/ni_dpm.c b/drivers/gpu/drm/radeon/ni_dpm.c
index 9416e72f86aa..0fd8d6ba9828 100644
--- a/drivers/gpu/drm/radeon/ni_dpm.c
+++ b/drivers/gpu/drm/radeon/ni_dpm.c
@@ -3998,8 +3998,9 @@ static int ni_parse_power_table(struct radeon_device *rdev)
3998 return -EINVAL; 3998 return -EINVAL;
3999 power_info = (union power_info *)(mode_info->atom_context->bios + data_offset); 3999 power_info = (union power_info *)(mode_info->atom_context->bios + data_offset);
4000 4000
4001 rdev->pm.dpm.ps = kzalloc(sizeof(struct radeon_ps) * 4001 rdev->pm.dpm.ps = kcalloc(power_info->pplib.ucNumStates,
4002 power_info->pplib.ucNumStates, GFP_KERNEL); 4002 sizeof(struct radeon_ps),
4003 GFP_KERNEL);
4003 if (!rdev->pm.dpm.ps) 4004 if (!rdev->pm.dpm.ps)
4004 return -ENOMEM; 4005 return -ENOMEM;
4005 4006
@@ -4075,7 +4076,9 @@ int ni_dpm_init(struct radeon_device *rdev)
4075 return ret; 4076 return ret;
4076 4077
4077 rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries = 4078 rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries =
4078 kzalloc(4 * sizeof(struct radeon_clock_voltage_dependency_entry), GFP_KERNEL); 4079 kcalloc(4,
4080 sizeof(struct radeon_clock_voltage_dependency_entry),
4081 GFP_KERNEL);
4079 if (!rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries) { 4082 if (!rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries) {
4080 r600_free_extended_power_table(rdev); 4083 r600_free_extended_power_table(rdev);
4081 return -ENOMEM; 4084 return -ENOMEM;
diff --git a/drivers/gpu/drm/radeon/r600_dpm.c b/drivers/gpu/drm/radeon/r600_dpm.c
index 31d1b4710844..73d4c5348116 100644
--- a/drivers/gpu/drm/radeon/r600_dpm.c
+++ b/drivers/gpu/drm/radeon/r600_dpm.c
@@ -991,7 +991,7 @@ int r600_parse_extended_power_table(struct radeon_device *rdev)
991 ATOM_PPLIB_PhaseSheddingLimits_Record *entry; 991 ATOM_PPLIB_PhaseSheddingLimits_Record *entry;
992 992
993 rdev->pm.dpm.dyn_state.phase_shedding_limits_table.entries = 993 rdev->pm.dpm.dyn_state.phase_shedding_limits_table.entries =
994 kzalloc(psl->ucNumEntries * 994 kcalloc(psl->ucNumEntries,
995 sizeof(struct radeon_phase_shedding_limits_entry), 995 sizeof(struct radeon_phase_shedding_limits_entry),
996 GFP_KERNEL); 996 GFP_KERNEL);
997 if (!rdev->pm.dpm.dyn_state.phase_shedding_limits_table.entries) { 997 if (!rdev->pm.dpm.dyn_state.phase_shedding_limits_table.entries) {
diff --git a/drivers/gpu/drm/radeon/radeon_atombios.c b/drivers/gpu/drm/radeon/radeon_atombios.c
index 4134759a6823..f422a8d6aec4 100644
--- a/drivers/gpu/drm/radeon/radeon_atombios.c
+++ b/drivers/gpu/drm/radeon/radeon_atombios.c
@@ -2126,13 +2126,16 @@ static int radeon_atombios_parse_power_table_1_3(struct radeon_device *rdev)
2126 num_modes = ATOM_MAX_NUMBEROF_POWER_BLOCK; 2126 num_modes = ATOM_MAX_NUMBEROF_POWER_BLOCK;
2127 if (num_modes == 0) 2127 if (num_modes == 0)
2128 return state_index; 2128 return state_index;
2129 rdev->pm.power_state = kzalloc(sizeof(struct radeon_power_state) * num_modes, GFP_KERNEL); 2129 rdev->pm.power_state = kcalloc(num_modes,
2130 sizeof(struct radeon_power_state),
2131 GFP_KERNEL);
2130 if (!rdev->pm.power_state) 2132 if (!rdev->pm.power_state)
2131 return state_index; 2133 return state_index;
2132 /* last mode is usually default, array is low to high */ 2134 /* last mode is usually default, array is low to high */
2133 for (i = 0; i < num_modes; i++) { 2135 for (i = 0; i < num_modes; i++) {
2134 rdev->pm.power_state[state_index].clock_info = 2136 rdev->pm.power_state[state_index].clock_info =
2135 kzalloc(sizeof(struct radeon_pm_clock_info) * 1, GFP_KERNEL); 2137 kcalloc(1, sizeof(struct radeon_pm_clock_info),
2138 GFP_KERNEL);
2136 if (!rdev->pm.power_state[state_index].clock_info) 2139 if (!rdev->pm.power_state[state_index].clock_info)
2137 return state_index; 2140 return state_index;
2138 rdev->pm.power_state[state_index].num_clock_modes = 1; 2141 rdev->pm.power_state[state_index].num_clock_modes = 1;
@@ -2587,8 +2590,9 @@ static int radeon_atombios_parse_power_table_4_5(struct radeon_device *rdev)
2587 radeon_atombios_add_pplib_thermal_controller(rdev, &power_info->pplib.sThermalController); 2590 radeon_atombios_add_pplib_thermal_controller(rdev, &power_info->pplib.sThermalController);
2588 if (power_info->pplib.ucNumStates == 0) 2591 if (power_info->pplib.ucNumStates == 0)
2589 return state_index; 2592 return state_index;
2590 rdev->pm.power_state = kzalloc(sizeof(struct radeon_power_state) * 2593 rdev->pm.power_state = kcalloc(power_info->pplib.ucNumStates,
2591 power_info->pplib.ucNumStates, GFP_KERNEL); 2594 sizeof(struct radeon_power_state),
2595 GFP_KERNEL);
2592 if (!rdev->pm.power_state) 2596 if (!rdev->pm.power_state)
2593 return state_index; 2597 return state_index;
2594 /* first mode is usually default, followed by low to high */ 2598 /* first mode is usually default, followed by low to high */
@@ -2603,10 +2607,11 @@ static int radeon_atombios_parse_power_table_4_5(struct radeon_device *rdev)
2603 le16_to_cpu(power_info->pplib.usNonClockInfoArrayOffset) + 2607 le16_to_cpu(power_info->pplib.usNonClockInfoArrayOffset) +
2604 (power_state->v1.ucNonClockStateIndex * 2608 (power_state->v1.ucNonClockStateIndex *
2605 power_info->pplib.ucNonClockSize)); 2609 power_info->pplib.ucNonClockSize));
2606 rdev->pm.power_state[i].clock_info = kzalloc(sizeof(struct radeon_pm_clock_info) * 2610 rdev->pm.power_state[i].clock_info =
2607 ((power_info->pplib.ucStateEntrySize - 1) ? 2611 kcalloc((power_info->pplib.ucStateEntrySize - 1) ?
2608 (power_info->pplib.ucStateEntrySize - 1) : 1), 2612 (power_info->pplib.ucStateEntrySize - 1) : 1,
2609 GFP_KERNEL); 2613 sizeof(struct radeon_pm_clock_info),
2614 GFP_KERNEL);
2610 if (!rdev->pm.power_state[i].clock_info) 2615 if (!rdev->pm.power_state[i].clock_info)
2611 return state_index; 2616 return state_index;
2612 if (power_info->pplib.ucStateEntrySize - 1) { 2617 if (power_info->pplib.ucStateEntrySize - 1) {
@@ -2688,8 +2693,9 @@ static int radeon_atombios_parse_power_table_6(struct radeon_device *rdev)
2688 le16_to_cpu(power_info->pplib.usNonClockInfoArrayOffset)); 2693 le16_to_cpu(power_info->pplib.usNonClockInfoArrayOffset));
2689 if (state_array->ucNumEntries == 0) 2694 if (state_array->ucNumEntries == 0)
2690 return state_index; 2695 return state_index;
2691 rdev->pm.power_state = kzalloc(sizeof(struct radeon_power_state) * 2696 rdev->pm.power_state = kcalloc(state_array->ucNumEntries,
2692 state_array->ucNumEntries, GFP_KERNEL); 2697 sizeof(struct radeon_power_state),
2698 GFP_KERNEL);
2693 if (!rdev->pm.power_state) 2699 if (!rdev->pm.power_state)
2694 return state_index; 2700 return state_index;
2695 power_state_offset = (u8 *)state_array->states; 2701 power_state_offset = (u8 *)state_array->states;
@@ -2699,10 +2705,11 @@ static int radeon_atombios_parse_power_table_6(struct radeon_device *rdev)
2699 non_clock_array_index = power_state->v2.nonClockInfoIndex; 2705 non_clock_array_index = power_state->v2.nonClockInfoIndex;
2700 non_clock_info = (struct _ATOM_PPLIB_NONCLOCK_INFO *) 2706 non_clock_info = (struct _ATOM_PPLIB_NONCLOCK_INFO *)
2701 &non_clock_info_array->nonClockInfo[non_clock_array_index]; 2707 &non_clock_info_array->nonClockInfo[non_clock_array_index];
2702 rdev->pm.power_state[i].clock_info = kzalloc(sizeof(struct radeon_pm_clock_info) * 2708 rdev->pm.power_state[i].clock_info =
2703 (power_state->v2.ucNumDPMLevels ? 2709 kcalloc(power_state->v2.ucNumDPMLevels ?
2704 power_state->v2.ucNumDPMLevels : 1), 2710 power_state->v2.ucNumDPMLevels : 1,
2705 GFP_KERNEL); 2711 sizeof(struct radeon_pm_clock_info),
2712 GFP_KERNEL);
2706 if (!rdev->pm.power_state[i].clock_info) 2713 if (!rdev->pm.power_state[i].clock_info)
2707 return state_index; 2714 return state_index;
2708 if (power_state->v2.ucNumDPMLevels) { 2715 if (power_state->v2.ucNumDPMLevels) {
@@ -2782,7 +2789,9 @@ void radeon_atombios_get_power_modes(struct radeon_device *rdev)
2782 rdev->pm.power_state = kzalloc(sizeof(struct radeon_power_state), GFP_KERNEL); 2789 rdev->pm.power_state = kzalloc(sizeof(struct radeon_power_state), GFP_KERNEL);
2783 if (rdev->pm.power_state) { 2790 if (rdev->pm.power_state) {
2784 rdev->pm.power_state[0].clock_info = 2791 rdev->pm.power_state[0].clock_info =
2785 kzalloc(sizeof(struct radeon_pm_clock_info) * 1, GFP_KERNEL); 2792 kcalloc(1,
2793 sizeof(struct radeon_pm_clock_info),
2794 GFP_KERNEL);
2786 if (rdev->pm.power_state[0].clock_info) { 2795 if (rdev->pm.power_state[0].clock_info) {
2787 /* add the default mode */ 2796 /* add the default mode */
2788 rdev->pm.power_state[state_index].type = 2797 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 3178ba0c537c..60a61d33f607 100644
--- a/drivers/gpu/drm/radeon/radeon_combios.c
+++ b/drivers/gpu/drm/radeon/radeon_combios.c
@@ -2642,13 +2642,16 @@ void radeon_combios_get_power_modes(struct radeon_device *rdev)
2642 rdev->pm.default_power_state_index = -1; 2642 rdev->pm.default_power_state_index = -1;
2643 2643
2644 /* allocate 2 power states */ 2644 /* allocate 2 power states */
2645 rdev->pm.power_state = kzalloc(sizeof(struct radeon_power_state) * 2, GFP_KERNEL); 2645 rdev->pm.power_state = kcalloc(2, sizeof(struct radeon_power_state),
2646 GFP_KERNEL);
2646 if (rdev->pm.power_state) { 2647 if (rdev->pm.power_state) {
2647 /* allocate 1 clock mode per state */ 2648 /* allocate 1 clock mode per state */
2648 rdev->pm.power_state[0].clock_info = 2649 rdev->pm.power_state[0].clock_info =
2649 kzalloc(sizeof(struct radeon_pm_clock_info) * 1, GFP_KERNEL); 2650 kcalloc(1, sizeof(struct radeon_pm_clock_info),
2651 GFP_KERNEL);
2650 rdev->pm.power_state[1].clock_info = 2652 rdev->pm.power_state[1].clock_info =
2651 kzalloc(sizeof(struct radeon_pm_clock_info) * 1, GFP_KERNEL); 2653 kcalloc(1, sizeof(struct radeon_pm_clock_info),
2654 GFP_KERNEL);
2652 if (!rdev->pm.power_state[0].clock_info || 2655 if (!rdev->pm.power_state[0].clock_info ||
2653 !rdev->pm.power_state[1].clock_info) 2656 !rdev->pm.power_state[1].clock_info)
2654 goto pm_failed; 2657 goto pm_failed;
diff --git a/drivers/gpu/drm/radeon/radeon_gart.c b/drivers/gpu/drm/radeon/radeon_gart.c
index 0b3ec35515f3..1cef155cc933 100644
--- a/drivers/gpu/drm/radeon/radeon_gart.c
+++ b/drivers/gpu/drm/radeon/radeon_gart.c
@@ -347,13 +347,14 @@ int radeon_gart_init(struct radeon_device *rdev)
347 DRM_INFO("GART: num cpu pages %u, num gpu pages %u\n", 347 DRM_INFO("GART: num cpu pages %u, num gpu pages %u\n",
348 rdev->gart.num_cpu_pages, rdev->gart.num_gpu_pages); 348 rdev->gart.num_cpu_pages, rdev->gart.num_gpu_pages);
349 /* Allocate pages table */ 349 /* Allocate pages table */
350 rdev->gart.pages = vzalloc(sizeof(void *) * rdev->gart.num_cpu_pages); 350 rdev->gart.pages = vzalloc(array_size(sizeof(void *),
351 rdev->gart.num_cpu_pages));
351 if (rdev->gart.pages == NULL) { 352 if (rdev->gart.pages == NULL) {
352 radeon_gart_fini(rdev); 353 radeon_gart_fini(rdev);
353 return -ENOMEM; 354 return -ENOMEM;
354 } 355 }
355 rdev->gart.pages_entry = vmalloc(sizeof(uint64_t) * 356 rdev->gart.pages_entry = vmalloc(array_size(sizeof(uint64_t),
356 rdev->gart.num_gpu_pages); 357 rdev->gart.num_gpu_pages));
357 if (rdev->gart.pages_entry == NULL) { 358 if (rdev->gart.pages_entry == NULL) {
358 radeon_gart_fini(rdev); 359 radeon_gart_fini(rdev);
359 return -ENOMEM; 360 return -ENOMEM;
diff --git a/drivers/gpu/drm/radeon/radeon_test.c b/drivers/gpu/drm/radeon/radeon_test.c
index f5e9abfadb56..48f4b273e316 100644
--- a/drivers/gpu/drm/radeon/radeon_test.c
+++ b/drivers/gpu/drm/radeon/radeon_test.c
@@ -59,7 +59,7 @@ static void radeon_do_test_moves(struct radeon_device *rdev, int flag)
59 n = rdev->mc.gtt_size - rdev->gart_pin_size; 59 n = rdev->mc.gtt_size - rdev->gart_pin_size;
60 n /= size; 60 n /= size;
61 61
62 gtt_obj = kzalloc(n * sizeof(*gtt_obj), GFP_KERNEL); 62 gtt_obj = kcalloc(n, sizeof(*gtt_obj), GFP_KERNEL);
63 if (!gtt_obj) { 63 if (!gtt_obj) {
64 DRM_ERROR("Failed to allocate %d pointers\n", n); 64 DRM_ERROR("Failed to allocate %d pointers\n", n);
65 r = 1; 65 r = 1;
diff --git a/drivers/gpu/drm/radeon/rs780_dpm.c b/drivers/gpu/drm/radeon/rs780_dpm.c
index b5e4e09a8996..694b7b3e9799 100644
--- a/drivers/gpu/drm/radeon/rs780_dpm.c
+++ b/drivers/gpu/drm/radeon/rs780_dpm.c
@@ -804,8 +804,9 @@ static int rs780_parse_power_table(struct radeon_device *rdev)
804 return -EINVAL; 804 return -EINVAL;
805 power_info = (union power_info *)(mode_info->atom_context->bios + data_offset); 805 power_info = (union power_info *)(mode_info->atom_context->bios + data_offset);
806 806
807 rdev->pm.dpm.ps = kzalloc(sizeof(struct radeon_ps) * 807 rdev->pm.dpm.ps = kcalloc(power_info->pplib.ucNumStates,
808 power_info->pplib.ucNumStates, GFP_KERNEL); 808 sizeof(struct radeon_ps),
809 GFP_KERNEL);
809 if (!rdev->pm.dpm.ps) 810 if (!rdev->pm.dpm.ps)
810 return -ENOMEM; 811 return -ENOMEM;
811 812
diff --git a/drivers/gpu/drm/radeon/rv6xx_dpm.c b/drivers/gpu/drm/radeon/rv6xx_dpm.c
index d91aa3944593..6986051fbb89 100644
--- a/drivers/gpu/drm/radeon/rv6xx_dpm.c
+++ b/drivers/gpu/drm/radeon/rv6xx_dpm.c
@@ -1888,8 +1888,9 @@ static int rv6xx_parse_power_table(struct radeon_device *rdev)
1888 return -EINVAL; 1888 return -EINVAL;
1889 power_info = (union power_info *)(mode_info->atom_context->bios + data_offset); 1889 power_info = (union power_info *)(mode_info->atom_context->bios + data_offset);
1890 1890
1891 rdev->pm.dpm.ps = kzalloc(sizeof(struct radeon_ps) * 1891 rdev->pm.dpm.ps = kcalloc(power_info->pplib.ucNumStates,
1892 power_info->pplib.ucNumStates, GFP_KERNEL); 1892 sizeof(struct radeon_ps),
1893 GFP_KERNEL);
1893 if (!rdev->pm.dpm.ps) 1894 if (!rdev->pm.dpm.ps)
1894 return -ENOMEM; 1895 return -ENOMEM;
1895 1896
diff --git a/drivers/gpu/drm/radeon/rv770_dpm.c b/drivers/gpu/drm/radeon/rv770_dpm.c
index cb2a7ec4e217..c765ae7ea806 100644
--- a/drivers/gpu/drm/radeon/rv770_dpm.c
+++ b/drivers/gpu/drm/radeon/rv770_dpm.c
@@ -2282,8 +2282,9 @@ int rv7xx_parse_power_table(struct radeon_device *rdev)
2282 return -EINVAL; 2282 return -EINVAL;
2283 power_info = (union power_info *)(mode_info->atom_context->bios + data_offset); 2283 power_info = (union power_info *)(mode_info->atom_context->bios + data_offset);
2284 2284
2285 rdev->pm.dpm.ps = kzalloc(sizeof(struct radeon_ps) * 2285 rdev->pm.dpm.ps = kcalloc(power_info->pplib.ucNumStates,
2286 power_info->pplib.ucNumStates, GFP_KERNEL); 2286 sizeof(struct radeon_ps),
2287 GFP_KERNEL);
2287 if (!rdev->pm.dpm.ps) 2288 if (!rdev->pm.dpm.ps)
2288 return -ENOMEM; 2289 return -ENOMEM;
2289 2290
diff --git a/drivers/gpu/drm/radeon/si_dpm.c b/drivers/gpu/drm/radeon/si_dpm.c
index 90d5b41007bf..fea88078cf8e 100644
--- a/drivers/gpu/drm/radeon/si_dpm.c
+++ b/drivers/gpu/drm/radeon/si_dpm.c
@@ -6832,8 +6832,9 @@ static int si_parse_power_table(struct radeon_device *rdev)
6832 (mode_info->atom_context->bios + data_offset + 6832 (mode_info->atom_context->bios + data_offset +
6833 le16_to_cpu(power_info->pplib.usNonClockInfoArrayOffset)); 6833 le16_to_cpu(power_info->pplib.usNonClockInfoArrayOffset));
6834 6834
6835 rdev->pm.dpm.ps = kzalloc(sizeof(struct radeon_ps) * 6835 rdev->pm.dpm.ps = kcalloc(state_array->ucNumEntries,
6836 state_array->ucNumEntries, GFP_KERNEL); 6836 sizeof(struct radeon_ps),
6837 GFP_KERNEL);
6837 if (!rdev->pm.dpm.ps) 6838 if (!rdev->pm.dpm.ps)
6838 return -ENOMEM; 6839 return -ENOMEM;
6839 power_state_offset = (u8 *)state_array->states; 6840 power_state_offset = (u8 *)state_array->states;
@@ -6941,7 +6942,9 @@ int si_dpm_init(struct radeon_device *rdev)
6941 return ret; 6942 return ret;
6942 6943
6943 rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries = 6944 rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries =
6944 kzalloc(4 * sizeof(struct radeon_clock_voltage_dependency_entry), GFP_KERNEL); 6945 kcalloc(4,
6946 sizeof(struct radeon_clock_voltage_dependency_entry),
6947 GFP_KERNEL);
6945 if (!rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries) { 6948 if (!rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries) {
6946 r600_free_extended_power_table(rdev); 6949 r600_free_extended_power_table(rdev);
6947 return -ENOMEM; 6950 return -ENOMEM;
diff --git a/drivers/gpu/drm/radeon/sumo_dpm.c b/drivers/gpu/drm/radeon/sumo_dpm.c
index fd4804829e46..1e4975f3374c 100644
--- a/drivers/gpu/drm/radeon/sumo_dpm.c
+++ b/drivers/gpu/drm/radeon/sumo_dpm.c
@@ -1482,8 +1482,9 @@ static int sumo_parse_power_table(struct radeon_device *rdev)
1482 (mode_info->atom_context->bios + data_offset + 1482 (mode_info->atom_context->bios + data_offset +
1483 le16_to_cpu(power_info->pplib.usNonClockInfoArrayOffset)); 1483 le16_to_cpu(power_info->pplib.usNonClockInfoArrayOffset));
1484 1484
1485 rdev->pm.dpm.ps = kzalloc(sizeof(struct radeon_ps) * 1485 rdev->pm.dpm.ps = kcalloc(state_array->ucNumEntries,
1486 state_array->ucNumEntries, GFP_KERNEL); 1486 sizeof(struct radeon_ps),
1487 GFP_KERNEL);
1487 if (!rdev->pm.dpm.ps) 1488 if (!rdev->pm.dpm.ps)
1488 return -ENOMEM; 1489 return -ENOMEM;
1489 power_state_offset = (u8 *)state_array->states; 1490 power_state_offset = (u8 *)state_array->states;
diff --git a/drivers/gpu/drm/radeon/trinity_dpm.c b/drivers/gpu/drm/radeon/trinity_dpm.c
index 2ef7c4e5e495..5d317f763eea 100644
--- a/drivers/gpu/drm/radeon/trinity_dpm.c
+++ b/drivers/gpu/drm/radeon/trinity_dpm.c
@@ -1757,8 +1757,9 @@ static int trinity_parse_power_table(struct radeon_device *rdev)
1757 (mode_info->atom_context->bios + data_offset + 1757 (mode_info->atom_context->bios + data_offset +
1758 le16_to_cpu(power_info->pplib.usNonClockInfoArrayOffset)); 1758 le16_to_cpu(power_info->pplib.usNonClockInfoArrayOffset));
1759 1759
1760 rdev->pm.dpm.ps = kzalloc(sizeof(struct radeon_ps) * 1760 rdev->pm.dpm.ps = kcalloc(state_array->ucNumEntries,
1761 state_array->ucNumEntries, GFP_KERNEL); 1761 sizeof(struct radeon_ps),
1762 GFP_KERNEL);
1762 if (!rdev->pm.dpm.ps) 1763 if (!rdev->pm.dpm.ps)
1763 return -ENOMEM; 1764 return -ENOMEM;
1764 power_state_offset = (u8 *)state_array->states; 1765 power_state_offset = (u8 *)state_array->states;
diff --git a/drivers/gpu/drm/savage/savage_bci.c b/drivers/gpu/drm/savage/savage_bci.c
index 2a5b8466d806..35dc74883f83 100644
--- a/drivers/gpu/drm/savage/savage_bci.c
+++ b/drivers/gpu/drm/savage/savage_bci.c
@@ -298,8 +298,9 @@ static int savage_dma_init(drm_savage_private_t * dev_priv)
298 298
299 dev_priv->nr_dma_pages = dev_priv->cmd_dma->size / 299 dev_priv->nr_dma_pages = dev_priv->cmd_dma->size /
300 (SAVAGE_DMA_PAGE_SIZE * 4); 300 (SAVAGE_DMA_PAGE_SIZE * 4);
301 dev_priv->dma_pages = kmalloc(sizeof(drm_savage_dma_page_t) * 301 dev_priv->dma_pages = kmalloc_array(dev_priv->nr_dma_pages,
302 dev_priv->nr_dma_pages, GFP_KERNEL); 302 sizeof(drm_savage_dma_page_t),
303 GFP_KERNEL);
303 if (dev_priv->dma_pages == NULL) 304 if (dev_priv->dma_pages == NULL)
304 return -ENOMEM; 305 return -ENOMEM;
305 306
diff --git a/drivers/gpu/drm/selftests/test-drm_mm.c b/drivers/gpu/drm/selftests/test-drm_mm.c
index 7cc935d7b7aa..933af1c25387 100644
--- a/drivers/gpu/drm/selftests/test-drm_mm.c
+++ b/drivers/gpu/drm/selftests/test-drm_mm.c
@@ -389,7 +389,7 @@ static int __igt_reserve(unsigned int count, u64 size)
389 if (!order) 389 if (!order)
390 goto err; 390 goto err;
391 391
392 nodes = vzalloc(sizeof(*nodes) * count); 392 nodes = vzalloc(array_size(count, sizeof(*nodes)));
393 if (!nodes) 393 if (!nodes)
394 goto err_order; 394 goto err_order;
395 395
@@ -579,7 +579,7 @@ static int __igt_insert(unsigned int count, u64 size, bool replace)
579 DRM_MM_BUG_ON(!size); 579 DRM_MM_BUG_ON(!size);
580 580
581 ret = -ENOMEM; 581 ret = -ENOMEM;
582 nodes = vmalloc(count * sizeof(*nodes)); 582 nodes = vmalloc(array_size(count, sizeof(*nodes)));
583 if (!nodes) 583 if (!nodes)
584 goto err; 584 goto err;
585 585
@@ -889,7 +889,7 @@ static int __igt_insert_range(unsigned int count, u64 size, u64 start, u64 end)
889 */ 889 */
890 890
891 ret = -ENOMEM; 891 ret = -ENOMEM;
892 nodes = vzalloc(count * sizeof(*nodes)); 892 nodes = vzalloc(array_size(count, sizeof(*nodes)));
893 if (!nodes) 893 if (!nodes)
894 goto err; 894 goto err;
895 895
@@ -1046,7 +1046,7 @@ static int igt_align(void *ignored)
1046 * meets our requirements. 1046 * meets our requirements.
1047 */ 1047 */
1048 1048
1049 nodes = vzalloc(max_count * sizeof(*nodes)); 1049 nodes = vzalloc(array_size(max_count, sizeof(*nodes)));
1050 if (!nodes) 1050 if (!nodes)
1051 goto err; 1051 goto err;
1052 1052
@@ -1416,7 +1416,7 @@ static int igt_evict(void *ignored)
1416 */ 1416 */
1417 1417
1418 ret = -ENOMEM; 1418 ret = -ENOMEM;
1419 nodes = vzalloc(size * sizeof(*nodes)); 1419 nodes = vzalloc(array_size(size, sizeof(*nodes)));
1420 if (!nodes) 1420 if (!nodes)
1421 goto err; 1421 goto err;
1422 1422
@@ -1526,7 +1526,7 @@ static int igt_evict_range(void *ignored)
1526 */ 1526 */
1527 1527
1528 ret = -ENOMEM; 1528 ret = -ENOMEM;
1529 nodes = vzalloc(size * sizeof(*nodes)); 1529 nodes = vzalloc(array_size(size, sizeof(*nodes)));
1530 if (!nodes) 1530 if (!nodes)
1531 goto err; 1531 goto err;
1532 1532
@@ -1627,11 +1627,11 @@ static int igt_topdown(void *ignored)
1627 */ 1627 */
1628 1628
1629 ret = -ENOMEM; 1629 ret = -ENOMEM;
1630 nodes = vzalloc(count * sizeof(*nodes)); 1630 nodes = vzalloc(array_size(count, sizeof(*nodes)));
1631 if (!nodes) 1631 if (!nodes)
1632 goto err; 1632 goto err;
1633 1633
1634 bitmap = kzalloc(count / BITS_PER_LONG * sizeof(unsigned long), 1634 bitmap = kcalloc(count / BITS_PER_LONG, sizeof(unsigned long),
1635 GFP_KERNEL); 1635 GFP_KERNEL);
1636 if (!bitmap) 1636 if (!bitmap)
1637 goto err_nodes; 1637 goto err_nodes;
@@ -1741,11 +1741,11 @@ static int igt_bottomup(void *ignored)
1741 */ 1741 */
1742 1742
1743 ret = -ENOMEM; 1743 ret = -ENOMEM;
1744 nodes = vzalloc(count * sizeof(*nodes)); 1744 nodes = vzalloc(array_size(count, sizeof(*nodes)));
1745 if (!nodes) 1745 if (!nodes)
1746 goto err; 1746 goto err;
1747 1747
1748 bitmap = kzalloc(count / BITS_PER_LONG * sizeof(unsigned long), 1748 bitmap = kcalloc(count / BITS_PER_LONG, sizeof(unsigned long),
1749 GFP_KERNEL); 1749 GFP_KERNEL);
1750 if (!bitmap) 1750 if (!bitmap)
1751 goto err_nodes; 1751 goto err_nodes;
@@ -2098,7 +2098,7 @@ static int igt_color_evict(void *ignored)
2098 */ 2098 */
2099 2099
2100 ret = -ENOMEM; 2100 ret = -ENOMEM;
2101 nodes = vzalloc(total_size * sizeof(*nodes)); 2101 nodes = vzalloc(array_size(total_size, sizeof(*nodes)));
2102 if (!nodes) 2102 if (!nodes)
2103 goto err; 2103 goto err;
2104 2104
@@ -2199,7 +2199,7 @@ static int igt_color_evict_range(void *ignored)
2199 */ 2199 */
2200 2200
2201 ret = -ENOMEM; 2201 ret = -ENOMEM;
2202 nodes = vzalloc(total_size * sizeof(*nodes)); 2202 nodes = vzalloc(array_size(total_size, sizeof(*nodes)));
2203 if (!nodes) 2203 if (!nodes)
2204 goto err; 2204 goto err;
2205 2205
diff --git a/drivers/gpu/drm/tinydrm/repaper.c b/drivers/gpu/drm/tinydrm/repaper.c
index 1ee6855212a0..50a1d4216ce7 100644
--- a/drivers/gpu/drm/tinydrm/repaper.c
+++ b/drivers/gpu/drm/tinydrm/repaper.c
@@ -548,7 +548,7 @@ static int repaper_fb_dirty(struct drm_framebuffer *fb,
548 DRM_DEBUG("Flushing [FB:%d] st=%ums\n", fb->base.id, 548 DRM_DEBUG("Flushing [FB:%d] st=%ums\n", fb->base.id,
549 epd->factored_stage_time); 549 epd->factored_stage_time);
550 550
551 buf = kmalloc(fb->width * fb->height, GFP_KERNEL); 551 buf = kmalloc_array(fb->width, fb->height, GFP_KERNEL);
552 if (!buf) 552 if (!buf)
553 return -ENOMEM; 553 return -ENOMEM;
554 554
diff --git a/drivers/gpu/drm/ttm/ttm_page_alloc.c b/drivers/gpu/drm/ttm/ttm_page_alloc.c
index 06c94e3a5f15..6e2d1300b457 100644
--- a/drivers/gpu/drm/ttm/ttm_page_alloc.c
+++ b/drivers/gpu/drm/ttm/ttm_page_alloc.c
@@ -348,8 +348,9 @@ static int ttm_page_pool_free(struct ttm_page_pool *pool, unsigned nr_free,
348 if (use_static) 348 if (use_static)
349 pages_to_free = static_buf; 349 pages_to_free = static_buf;
350 else 350 else
351 pages_to_free = kmalloc(npages_to_free * sizeof(struct page *), 351 pages_to_free = kmalloc_array(npages_to_free,
352 GFP_KERNEL); 352 sizeof(struct page *),
353 GFP_KERNEL);
353 if (!pages_to_free) { 354 if (!pages_to_free) {
354 pr_debug("Failed to allocate memory for pool free operation\n"); 355 pr_debug("Failed to allocate memory for pool free operation\n");
355 return 0; 356 return 0;
@@ -547,7 +548,8 @@ static int ttm_alloc_new_pages(struct list_head *pages, gfp_t gfp_flags,
547 unsigned max_cpages = min(count << order, (unsigned)NUM_PAGES_TO_ALLOC); 548 unsigned max_cpages = min(count << order, (unsigned)NUM_PAGES_TO_ALLOC);
548 549
549 /* allocate array for page caching change */ 550 /* allocate array for page caching change */
550 caching_array = kmalloc(max_cpages*sizeof(struct page *), GFP_KERNEL); 551 caching_array = kmalloc_array(max_cpages, sizeof(struct page *),
552 GFP_KERNEL);
551 553
552 if (!caching_array) { 554 if (!caching_array) {
553 pr_debug("Unable to allocate table for new pages\n"); 555 pr_debug("Unable to allocate table for new pages\n");
diff --git a/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c b/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c
index f63d99c302e4..3f14c1cc0789 100644
--- a/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c
+++ b/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c
@@ -463,8 +463,9 @@ static unsigned ttm_dma_page_pool_free(struct dma_pool *pool, unsigned nr_free,
463 if (use_static) 463 if (use_static)
464 pages_to_free = static_buf; 464 pages_to_free = static_buf;
465 else 465 else
466 pages_to_free = kmalloc(npages_to_free * sizeof(struct page *), 466 pages_to_free = kmalloc_array(npages_to_free,
467 GFP_KERNEL); 467 sizeof(struct page *),
468 GFP_KERNEL);
468 469
469 if (!pages_to_free) { 470 if (!pages_to_free) {
470 pr_debug("%s: Failed to allocate memory for pool free operation\n", 471 pr_debug("%s: Failed to allocate memory for pool free operation\n",
@@ -753,7 +754,8 @@ static int ttm_dma_pool_alloc_new_pages(struct dma_pool *pool,
753 (unsigned)(PAGE_SIZE/sizeof(struct page *))); 754 (unsigned)(PAGE_SIZE/sizeof(struct page *)));
754 755
755 /* allocate array for page caching change */ 756 /* allocate array for page caching change */
756 caching_array = kmalloc(max_cpages*sizeof(struct page *), GFP_KERNEL); 757 caching_array = kmalloc_array(max_cpages, sizeof(struct page *),
758 GFP_KERNEL);
757 759
758 if (!caching_array) { 760 if (!caching_array) {
759 pr_debug("%s: Unable to allocate table for new pages\n", 761 pr_debug("%s: Unable to allocate table for new pages\n",
diff --git a/drivers/gpu/drm/vc4/vc4_plane.c b/drivers/gpu/drm/vc4/vc4_plane.c
index 71d44c357d35..1d34619eb3fe 100644
--- a/drivers/gpu/drm/vc4/vc4_plane.c
+++ b/drivers/gpu/drm/vc4/vc4_plane.c
@@ -209,7 +209,7 @@ static void vc4_dlist_write(struct vc4_plane_state *vc4_state, u32 val)
209{ 209{
210 if (vc4_state->dlist_count == vc4_state->dlist_size) { 210 if (vc4_state->dlist_count == vc4_state->dlist_size) {
211 u32 new_size = max(4u, vc4_state->dlist_count * 2); 211 u32 new_size = max(4u, vc4_state->dlist_count * 2);
212 u32 *new_dlist = kmalloc(new_size * 4, GFP_KERNEL); 212 u32 *new_dlist = kmalloc_array(new_size, 4, GFP_KERNEL);
213 213
214 if (!new_dlist) 214 if (!new_dlist)
215 return; 215 return;
diff --git a/drivers/gpu/drm/via/via_dmablit.c b/drivers/gpu/drm/via/via_dmablit.c
index d6e84a589ef1..345bda4494e1 100644
--- a/drivers/gpu/drm/via/via_dmablit.c
+++ b/drivers/gpu/drm/via/via_dmablit.c
@@ -235,7 +235,7 @@ via_lock_all_dma_pages(drm_via_sg_info_t *vsg, drm_via_dmablit_t *xfer)
235 vsg->num_pages = VIA_PFN(xfer->mem_addr + (xfer->num_lines * xfer->mem_stride - 1)) - 235 vsg->num_pages = VIA_PFN(xfer->mem_addr + (xfer->num_lines * xfer->mem_stride - 1)) -
236 first_pfn + 1; 236 first_pfn + 1;
237 237
238 vsg->pages = vzalloc(sizeof(struct page *) * vsg->num_pages); 238 vsg->pages = vzalloc(array_size(sizeof(struct page *), vsg->num_pages));
239 if (NULL == vsg->pages) 239 if (NULL == vsg->pages)
240 return -ENOMEM; 240 return -ENOMEM;
241 ret = get_user_pages_fast((unsigned long)xfer->mem_addr, 241 ret = get_user_pages_fast((unsigned long)xfer->mem_addr,
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index 355dc7e49562..f858cc72011d 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -134,8 +134,11 @@ static int open_collection(struct hid_parser *parser, unsigned type)
134 } 134 }
135 135
136 if (parser->device->maxcollection == parser->device->collection_size) { 136 if (parser->device->maxcollection == parser->device->collection_size) {
137 collection = kmalloc(sizeof(struct hid_collection) * 137 collection = kmalloc(
138 parser->device->collection_size * 2, GFP_KERNEL); 138 array3_size(sizeof(struct hid_collection),
139 parser->device->collection_size,
140 2),
141 GFP_KERNEL);
139 if (collection == NULL) { 142 if (collection == NULL) {
140 hid_err(parser->device, "failed to reallocate collection array\n"); 143 hid_err(parser->device, "failed to reallocate collection array\n");
141 return -ENOMEM; 144 return -ENOMEM;
@@ -1278,7 +1281,7 @@ static void hid_input_field(struct hid_device *hid, struct hid_field *field,
1278 __s32 max = field->logical_maximum; 1281 __s32 max = field->logical_maximum;
1279 __s32 *value; 1282 __s32 *value;
1280 1283
1281 value = kmalloc(sizeof(__s32) * count, GFP_ATOMIC); 1284 value = kmalloc_array(count, sizeof(__s32), GFP_ATOMIC);
1282 if (!value) 1285 if (!value)
1283 return; 1286 return;
1284 1287
diff --git a/drivers/hid/hid-debug.c b/drivers/hid/hid-debug.c
index 4f4e7a08a07b..8469b6964ff6 100644
--- a/drivers/hid/hid-debug.c
+++ b/drivers/hid/hid-debug.c
@@ -457,7 +457,7 @@ static char *resolv_usage_page(unsigned page, struct seq_file *f) {
457 char *buf = NULL; 457 char *buf = NULL;
458 458
459 if (!f) { 459 if (!f) {
460 buf = kzalloc(sizeof(char) * HID_DEBUG_BUFSIZE, GFP_ATOMIC); 460 buf = kzalloc(HID_DEBUG_BUFSIZE, GFP_ATOMIC);
461 if (!buf) 461 if (!buf)
462 return ERR_PTR(-ENOMEM); 462 return ERR_PTR(-ENOMEM);
463 } 463 }
@@ -685,7 +685,7 @@ void hid_dump_report(struct hid_device *hid, int type, u8 *data,
685 char *buf; 685 char *buf;
686 unsigned int i; 686 unsigned int i;
687 687
688 buf = kmalloc(sizeof(char) * HID_DEBUG_BUFSIZE, GFP_ATOMIC); 688 buf = kmalloc(HID_DEBUG_BUFSIZE, GFP_ATOMIC);
689 689
690 if (!buf) 690 if (!buf)
691 return; 691 return;
@@ -1088,7 +1088,7 @@ static int hid_debug_events_open(struct inode *inode, struct file *file)
1088 goto out; 1088 goto out;
1089 } 1089 }
1090 1090
1091 if (!(list->hid_debug_buf = kzalloc(sizeof(char) * HID_DEBUG_BUFSIZE, GFP_KERNEL))) { 1091 if (!(list->hid_debug_buf = kzalloc(HID_DEBUG_BUFSIZE, GFP_KERNEL))) {
1092 err = -ENOMEM; 1092 err = -ENOMEM;
1093 kfree(list); 1093 kfree(list);
1094 goto out; 1094 goto out;
diff --git a/drivers/hid/hid-picolcd_fb.c b/drivers/hid/hid-picolcd_fb.c
index 7f965e231433..864a084b6cba 100644
--- a/drivers/hid/hid-picolcd_fb.c
+++ b/drivers/hid/hid-picolcd_fb.c
@@ -394,7 +394,8 @@ static int picolcd_set_par(struct fb_info *info)
394 return -EINVAL; 394 return -EINVAL;
395 395
396 o_fb = fbdata->bitmap; 396 o_fb = fbdata->bitmap;
397 tmp_fb = kmalloc(PICOLCDFB_SIZE*info->var.bits_per_pixel, GFP_KERNEL); 397 tmp_fb = kmalloc_array(PICOLCDFB_SIZE, info->var.bits_per_pixel,
398 GFP_KERNEL);
398 if (!tmp_fb) 399 if (!tmp_fb)
399 return -ENOMEM; 400 return -ENOMEM;
400 401
diff --git a/drivers/hid/hid-sensor-hub.c b/drivers/hid/hid-sensor-hub.c
index 25363fc571bc..50af72baa5ca 100644
--- a/drivers/hid/hid-sensor-hub.c
+++ b/drivers/hid/hid-sensor-hub.c
@@ -624,7 +624,8 @@ static int sensor_hub_probe(struct hid_device *hdev,
624 ret = -EINVAL; 624 ret = -EINVAL;
625 goto err_stop_hw; 625 goto err_stop_hw;
626 } 626 }
627 sd->hid_sensor_hub_client_devs = devm_kzalloc(&hdev->dev, dev_cnt * 627 sd->hid_sensor_hub_client_devs = devm_kcalloc(&hdev->dev,
628 dev_cnt,
628 sizeof(struct mfd_cell), 629 sizeof(struct mfd_cell),
629 GFP_KERNEL); 630 GFP_KERNEL);
630 if (sd->hid_sensor_hub_client_devs == NULL) { 631 if (sd->hid_sensor_hub_client_devs == NULL) {
diff --git a/drivers/hid/hidraw.c b/drivers/hid/hidraw.c
index b39844adea47..4a44e48e08b2 100644
--- a/drivers/hid/hidraw.c
+++ b/drivers/hid/hidraw.c
@@ -218,7 +218,7 @@ static ssize_t hidraw_get_report(struct file *file, char __user *buffer, size_t
218 goto out; 218 goto out;
219 } 219 }
220 220
221 buf = kmalloc(count * sizeof(__u8), GFP_KERNEL); 221 buf = kmalloc(count, GFP_KERNEL);
222 if (!buf) { 222 if (!buf) {
223 ret = -ENOMEM; 223 ret = -ENOMEM;
224 goto out; 224 goto out;
diff --git a/drivers/hid/intel-ish-hid/ishtp-hid-client.c b/drivers/hid/intel-ish-hid/ishtp-hid-client.c
index acc2536c8094..2d28cffc1404 100644
--- a/drivers/hid/intel-ish-hid/ishtp-hid-client.c
+++ b/drivers/hid/intel-ish-hid/ishtp-hid-client.c
@@ -121,9 +121,9 @@ static void process_recv(struct ishtp_cl *hid_ishtp_cl, void *recv_buf,
121 } 121 }
122 client_data->hid_dev_count = (unsigned int)*payload; 122 client_data->hid_dev_count = (unsigned int)*payload;
123 if (!client_data->hid_devices) 123 if (!client_data->hid_devices)
124 client_data->hid_devices = devm_kzalloc( 124 client_data->hid_devices = devm_kcalloc(
125 &client_data->cl_device->dev, 125 &client_data->cl_device->dev,
126 client_data->hid_dev_count * 126 client_data->hid_dev_count,
127 sizeof(struct device_info), 127 sizeof(struct device_info),
128 GFP_KERNEL); 128 GFP_KERNEL);
129 if (!client_data->hid_devices) { 129 if (!client_data->hid_devices) {
diff --git a/drivers/hid/wacom_sys.c b/drivers/hid/wacom_sys.c
index ee7a37eb159a..c101369b51de 100644
--- a/drivers/hid/wacom_sys.c
+++ b/drivers/hid/wacom_sys.c
@@ -1363,7 +1363,7 @@ static int wacom_led_groups_alloc_and_register_one(struct device *dev,
1363 if (!devres_open_group(dev, &wacom->led.groups[group_id], GFP_KERNEL)) 1363 if (!devres_open_group(dev, &wacom->led.groups[group_id], GFP_KERNEL))
1364 return -ENOMEM; 1364 return -ENOMEM;
1365 1365
1366 leds = devm_kzalloc(dev, sizeof(struct wacom_led) * count, GFP_KERNEL); 1366 leds = devm_kcalloc(dev, count, sizeof(struct wacom_led), GFP_KERNEL);
1367 if (!leds) { 1367 if (!leds) {
1368 error = -ENOMEM; 1368 error = -ENOMEM;
1369 goto err; 1369 goto err;
@@ -1463,7 +1463,7 @@ static int wacom_led_groups_allocate(struct wacom *wacom, int count)
1463 struct wacom_group_leds *groups; 1463 struct wacom_group_leds *groups;
1464 int error; 1464 int error;
1465 1465
1466 groups = devm_kzalloc(dev, sizeof(struct wacom_group_leds) * count, 1466 groups = devm_kcalloc(dev, count, sizeof(struct wacom_group_leds),
1467 GFP_KERNEL); 1467 GFP_KERNEL);
1468 if (!groups) 1468 if (!groups)
1469 return -ENOMEM; 1469 return -ENOMEM;
diff --git a/drivers/hv/hv.c b/drivers/hv/hv.c
index 9b82549cbbc8..658dc765753b 100644
--- a/drivers/hv/hv.c
+++ b/drivers/hv/hv.c
@@ -190,7 +190,7 @@ int hv_synic_alloc(void)
190{ 190{
191 int cpu; 191 int cpu;
192 192
193 hv_context.hv_numa_map = kzalloc(sizeof(struct cpumask) * nr_node_ids, 193 hv_context.hv_numa_map = kcalloc(nr_node_ids, sizeof(struct cpumask),
194 GFP_KERNEL); 194 GFP_KERNEL);
195 if (hv_context.hv_numa_map == NULL) { 195 if (hv_context.hv_numa_map == NULL) {
196 pr_err("Unable to allocate NUMA map\n"); 196 pr_err("Unable to allocate NUMA map\n");
diff --git a/drivers/hv/ring_buffer.c b/drivers/hv/ring_buffer.c
index 3c836c099a8f..be3c8b10b84a 100644
--- a/drivers/hv/ring_buffer.c
+++ b/drivers/hv/ring_buffer.c
@@ -202,7 +202,7 @@ int hv_ringbuffer_init(struct hv_ring_buffer_info *ring_info,
202 * First page holds struct hv_ring_buffer, do wraparound mapping for 202 * First page holds struct hv_ring_buffer, do wraparound mapping for
203 * the rest. 203 * the rest.
204 */ 204 */
205 pages_wraparound = kzalloc(sizeof(struct page *) * (page_cnt * 2 - 1), 205 pages_wraparound = kcalloc(page_cnt * 2 - 1, sizeof(struct page *),
206 GFP_KERNEL); 206 GFP_KERNEL);
207 if (!pages_wraparound) 207 if (!pages_wraparound)
208 return -ENOMEM; 208 return -ENOMEM;
diff --git a/drivers/hwmon/acpi_power_meter.c b/drivers/hwmon/acpi_power_meter.c
index 14a94d90c028..34e45b97629e 100644
--- a/drivers/hwmon/acpi_power_meter.c
+++ b/drivers/hwmon/acpi_power_meter.c
@@ -575,8 +575,9 @@ static int read_domain_devices(struct acpi_power_meter_resource *resource)
575 if (!pss->package.count) 575 if (!pss->package.count)
576 goto end; 576 goto end;
577 577
578 resource->domain_devices = kzalloc(sizeof(struct acpi_device *) * 578 resource->domain_devices = kcalloc(pss->package.count,
579 pss->package.count, GFP_KERNEL); 579 sizeof(struct acpi_device *),
580 GFP_KERNEL);
580 if (!resource->domain_devices) { 581 if (!resource->domain_devices) {
581 res = -ENOMEM; 582 res = -ENOMEM;
582 goto end; 583 goto end;
@@ -796,7 +797,7 @@ static int read_capabilities(struct acpi_power_meter_resource *resource)
796 goto error; 797 goto error;
797 } 798 }
798 799
799 *str = kzalloc(sizeof(u8) * (element->string.length + 1), 800 *str = kcalloc(element->string.length + 1, sizeof(u8),
800 GFP_KERNEL); 801 GFP_KERNEL);
801 if (!*str) { 802 if (!*str) {
802 res = -ENOMEM; 803 res = -ENOMEM;
diff --git a/drivers/hwmon/aspeed-pwm-tacho.c b/drivers/hwmon/aspeed-pwm-tacho.c
index 693a3d53cab5..5e449eac788a 100644
--- a/drivers/hwmon/aspeed-pwm-tacho.c
+++ b/drivers/hwmon/aspeed-pwm-tacho.c
@@ -894,7 +894,7 @@ static int aspeed_create_fan(struct device *dev,
894 count = of_property_count_u8_elems(child, "aspeed,fan-tach-ch"); 894 count = of_property_count_u8_elems(child, "aspeed,fan-tach-ch");
895 if (count < 1) 895 if (count < 1)
896 return -EINVAL; 896 return -EINVAL;
897 fan_tach_ch = devm_kzalloc(dev, sizeof(*fan_tach_ch) * count, 897 fan_tach_ch = devm_kcalloc(dev, count, sizeof(*fan_tach_ch),
898 GFP_KERNEL); 898 GFP_KERNEL);
899 if (!fan_tach_ch) 899 if (!fan_tach_ch)
900 return -ENOMEM; 900 return -ENOMEM;
diff --git a/drivers/hwmon/coretemp.c b/drivers/hwmon/coretemp.c
index 72c338eb5fae..10645c9bb7be 100644
--- a/drivers/hwmon/coretemp.c
+++ b/drivers/hwmon/coretemp.c
@@ -742,7 +742,7 @@ static int __init coretemp_init(void)
742 return -ENODEV; 742 return -ENODEV;
743 743
744 max_packages = topology_max_packages(); 744 max_packages = topology_max_packages();
745 pkg_devices = kzalloc(max_packages * sizeof(struct platform_device *), 745 pkg_devices = kcalloc(max_packages, sizeof(struct platform_device *),
746 GFP_KERNEL); 746 GFP_KERNEL);
747 if (!pkg_devices) 747 if (!pkg_devices)
748 return -ENOMEM; 748 return -ENOMEM;
diff --git a/drivers/hwmon/gpio-fan.c b/drivers/hwmon/gpio-fan.c
index 5c9a52599cf6..a3974cddef07 100644
--- a/drivers/hwmon/gpio-fan.c
+++ b/drivers/hwmon/gpio-fan.c
@@ -441,8 +441,8 @@ static int gpio_fan_get_of_data(struct gpio_fan_data *fan_data)
441 dev_err(dev, "DT properties empty / missing"); 441 dev_err(dev, "DT properties empty / missing");
442 return -ENODEV; 442 return -ENODEV;
443 } 443 }
444 gpios = devm_kzalloc(dev, 444 gpios = devm_kcalloc(dev,
445 fan_data->num_gpios * sizeof(struct gpio_desc *), 445 fan_data->num_gpios, sizeof(struct gpio_desc *),
446 GFP_KERNEL); 446 GFP_KERNEL);
447 if (!gpios) 447 if (!gpios)
448 return -ENOMEM; 448 return -ENOMEM;
@@ -471,8 +471,8 @@ static int gpio_fan_get_of_data(struct gpio_fan_data *fan_data)
471 * Speed map is in the form <RPM ctrl_val RPM ctrl_val ...> 471 * Speed map is in the form <RPM ctrl_val RPM ctrl_val ...>
472 * this needs splitting into pairs to create gpio_fan_speed structs 472 * this needs splitting into pairs to create gpio_fan_speed structs
473 */ 473 */
474 speed = devm_kzalloc(dev, 474 speed = devm_kcalloc(dev,
475 fan_data->num_speed * sizeof(struct gpio_fan_speed), 475 fan_data->num_speed, sizeof(struct gpio_fan_speed),
476 GFP_KERNEL); 476 GFP_KERNEL);
477 if (!speed) 477 if (!speed)
478 return -ENOMEM; 478 return -ENOMEM;
diff --git a/drivers/hwmon/i5k_amb.c b/drivers/hwmon/i5k_amb.c
index 9397d2f0e79a..a4edc43dd060 100644
--- a/drivers/hwmon/i5k_amb.c
+++ b/drivers/hwmon/i5k_amb.c
@@ -274,8 +274,9 @@ static int i5k_amb_hwmon_init(struct platform_device *pdev)
274 num_ambs += hweight16(data->amb_present[i] & 0x7fff); 274 num_ambs += hweight16(data->amb_present[i] & 0x7fff);
275 275
276 /* Set up sysfs stuff */ 276 /* Set up sysfs stuff */
277 data->attrs = kzalloc(sizeof(*data->attrs) * num_ambs * KNOBS_PER_AMB, 277 data->attrs = kzalloc(array3_size(num_ambs, KNOBS_PER_AMB,
278 GFP_KERNEL); 278 sizeof(*data->attrs)),
279 GFP_KERNEL);
279 if (!data->attrs) 280 if (!data->attrs)
280 return -ENOMEM; 281 return -ENOMEM;
281 data->num_attrs = 0; 282 data->num_attrs = 0;
diff --git a/drivers/hwmon/ibmpex.c b/drivers/hwmon/ibmpex.c
index 21b9c72f16bd..ab72cabf5a95 100644
--- a/drivers/hwmon/ibmpex.c
+++ b/drivers/hwmon/ibmpex.c
@@ -387,7 +387,7 @@ static int ibmpex_find_sensors(struct ibmpex_bmc_data *data)
387 return -ENOENT; 387 return -ENOENT;
388 data->num_sensors = err; 388 data->num_sensors = err;
389 389
390 data->sensors = kzalloc(data->num_sensors * sizeof(*data->sensors), 390 data->sensors = kcalloc(data->num_sensors, sizeof(*data->sensors),
391 GFP_KERNEL); 391 GFP_KERNEL);
392 if (!data->sensors) 392 if (!data->sensors)
393 return -ENOMEM; 393 return -ENOMEM;
diff --git a/drivers/hwmon/ibmpowernv.c b/drivers/hwmon/ibmpowernv.c
index 0298745d46e4..f829dadfd5a0 100644
--- a/drivers/hwmon/ibmpowernv.c
+++ b/drivers/hwmon/ibmpowernv.c
@@ -326,9 +326,9 @@ static int populate_attr_groups(struct platform_device *pdev)
326 of_node_put(opal); 326 of_node_put(opal);
327 327
328 for (type = 0; type < MAX_SENSOR_TYPE; type++) { 328 for (type = 0; type < MAX_SENSOR_TYPE; type++) {
329 sensor_groups[type].group.attrs = devm_kzalloc(&pdev->dev, 329 sensor_groups[type].group.attrs = devm_kcalloc(&pdev->dev,
330 sizeof(struct attribute *) * 330 sensor_groups[type].attr_count + 1,
331 (sensor_groups[type].attr_count + 1), 331 sizeof(struct attribute *),
332 GFP_KERNEL); 332 GFP_KERNEL);
333 if (!sensor_groups[type].group.attrs) 333 if (!sensor_groups[type].group.attrs)
334 return -ENOMEM; 334 return -ENOMEM;
@@ -409,7 +409,8 @@ static int create_device_attrs(struct platform_device *pdev)
409 int err = 0; 409 int err = 0;
410 410
411 opal = of_find_node_by_path("/ibm,opal/sensors"); 411 opal = of_find_node_by_path("/ibm,opal/sensors");
412 sdata = devm_kzalloc(&pdev->dev, pdata->sensors_count * sizeof(*sdata), 412 sdata = devm_kcalloc(&pdev->dev,
413 pdata->sensors_count, sizeof(*sdata),
413 GFP_KERNEL); 414 GFP_KERNEL);
414 if (!sdata) { 415 if (!sdata) {
415 err = -ENOMEM; 416 err = -ENOMEM;
diff --git a/drivers/hwmon/iio_hwmon.c b/drivers/hwmon/iio_hwmon.c
index 5e5b32a1ec4b..69031a0f7ed2 100644
--- a/drivers/hwmon/iio_hwmon.c
+++ b/drivers/hwmon/iio_hwmon.c
@@ -92,8 +92,8 @@ static int iio_hwmon_probe(struct platform_device *pdev)
92 while (st->channels[st->num_channels].indio_dev) 92 while (st->channels[st->num_channels].indio_dev)
93 st->num_channels++; 93 st->num_channels++;
94 94
95 st->attrs = devm_kzalloc(dev, 95 st->attrs = devm_kcalloc(dev,
96 sizeof(*st->attrs) * (st->num_channels + 1), 96 st->num_channels + 1, sizeof(*st->attrs),
97 GFP_KERNEL); 97 GFP_KERNEL);
98 if (st->attrs == NULL) { 98 if (st->attrs == NULL) {
99 ret = -ENOMEM; 99 ret = -ENOMEM;
diff --git a/drivers/hwmon/nct6683.c b/drivers/hwmon/nct6683.c
index b0bc77bf2cd9..a753464a1a33 100644
--- a/drivers/hwmon/nct6683.c
+++ b/drivers/hwmon/nct6683.c
@@ -426,12 +426,12 @@ nct6683_create_attr_group(struct device *dev,
426 if (group == NULL) 426 if (group == NULL)
427 return ERR_PTR(-ENOMEM); 427 return ERR_PTR(-ENOMEM);
428 428
429 attrs = devm_kzalloc(dev, sizeof(*attrs) * (repeat * count + 1), 429 attrs = devm_kcalloc(dev, repeat * count + 1, sizeof(*attrs),
430 GFP_KERNEL); 430 GFP_KERNEL);
431 if (attrs == NULL) 431 if (attrs == NULL)
432 return ERR_PTR(-ENOMEM); 432 return ERR_PTR(-ENOMEM);
433 433
434 su = devm_kzalloc(dev, sizeof(*su) * repeat * count, 434 su = devm_kzalloc(dev, array3_size(repeat, count, sizeof(*su)),
435 GFP_KERNEL); 435 GFP_KERNEL);
436 if (su == NULL) 436 if (su == NULL)
437 return ERR_PTR(-ENOMEM); 437 return ERR_PTR(-ENOMEM);
diff --git a/drivers/hwmon/nct6775.c b/drivers/hwmon/nct6775.c
index aebce560bfaf..155d4d1d1585 100644
--- a/drivers/hwmon/nct6775.c
+++ b/drivers/hwmon/nct6775.c
@@ -1190,12 +1190,12 @@ nct6775_create_attr_group(struct device *dev,
1190 if (group == NULL) 1190 if (group == NULL)
1191 return ERR_PTR(-ENOMEM); 1191 return ERR_PTR(-ENOMEM);
1192 1192
1193 attrs = devm_kzalloc(dev, sizeof(*attrs) * (repeat * count + 1), 1193 attrs = devm_kcalloc(dev, repeat * count + 1, sizeof(*attrs),
1194 GFP_KERNEL); 1194 GFP_KERNEL);
1195 if (attrs == NULL) 1195 if (attrs == NULL)
1196 return ERR_PTR(-ENOMEM); 1196 return ERR_PTR(-ENOMEM);
1197 1197
1198 su = devm_kzalloc(dev, sizeof(*su) * repeat * count, 1198 su = devm_kzalloc(dev, array3_size(repeat, count, sizeof(*su)),
1199 GFP_KERNEL); 1199 GFP_KERNEL);
1200 if (su == NULL) 1200 if (su == NULL)
1201 return ERR_PTR(-ENOMEM); 1201 return ERR_PTR(-ENOMEM);
diff --git a/drivers/hwmon/pmbus/pmbus_core.c b/drivers/hwmon/pmbus/pmbus_core.c
index f7c47d7994e7..82c3754e21e3 100644
--- a/drivers/hwmon/pmbus/pmbus_core.c
+++ b/drivers/hwmon/pmbus/pmbus_core.c
@@ -2176,8 +2176,8 @@ static int pmbus_init_debugfs(struct i2c_client *client,
2176 } 2176 }
2177 2177
2178 /* Allocate the max possible entries we need. */ 2178 /* Allocate the max possible entries we need. */
2179 entries = devm_kzalloc(data->dev, 2179 entries = devm_kcalloc(data->dev,
2180 sizeof(*entries) * (data->info->pages * 10), 2180 data->info->pages * 10, sizeof(*entries),
2181 GFP_KERNEL); 2181 GFP_KERNEL);
2182 if (!entries) 2182 if (!entries)
2183 return -ENOMEM; 2183 return -ENOMEM;
diff --git a/drivers/hwmon/pmbus/ucd9000.c b/drivers/hwmon/pmbus/ucd9000.c
index 70cecb06f93c..ae93885fccd8 100644
--- a/drivers/hwmon/pmbus/ucd9000.c
+++ b/drivers/hwmon/pmbus/ucd9000.c
@@ -454,8 +454,8 @@ static int ucd9000_init_debugfs(struct i2c_client *client,
454 */ 454 */
455 if (mid->driver_data == ucd9090 || mid->driver_data == ucd90160 || 455 if (mid->driver_data == ucd9090 || mid->driver_data == ucd90160 ||
456 mid->driver_data == ucd90910) { 456 mid->driver_data == ucd90910) {
457 entries = devm_kzalloc(&client->dev, 457 entries = devm_kcalloc(&client->dev,
458 sizeof(*entries) * UCD9000_GPI_COUNT, 458 UCD9000_GPI_COUNT, sizeof(*entries),
459 GFP_KERNEL); 459 GFP_KERNEL);
460 if (!entries) 460 if (!entries)
461 return -ENOMEM; 461 return -ENOMEM;
diff --git a/drivers/hwmon/pwm-fan.c b/drivers/hwmon/pwm-fan.c
index 70cc0d134f3c..7838af58f92d 100644
--- a/drivers/hwmon/pwm-fan.c
+++ b/drivers/hwmon/pwm-fan.c
@@ -180,7 +180,7 @@ static int pwm_fan_of_get_cooling_data(struct device *dev,
180 } 180 }
181 181
182 num = ret; 182 num = ret;
183 ctx->pwm_fan_cooling_levels = devm_kzalloc(dev, num * sizeof(u32), 183 ctx->pwm_fan_cooling_levels = devm_kcalloc(dev, num, sizeof(u32),
184 GFP_KERNEL); 184 GFP_KERNEL);
185 if (!ctx->pwm_fan_cooling_levels) 185 if (!ctx->pwm_fan_cooling_levels)
186 return -ENOMEM; 186 return -ENOMEM;
diff --git a/drivers/hwtracing/coresight/coresight-etb10.c b/drivers/hwtracing/coresight/coresight-etb10.c
index 9b6c55523c58..320d29df17e1 100644
--- a/drivers/hwtracing/coresight/coresight-etb10.c
+++ b/drivers/hwtracing/coresight/coresight-etb10.c
@@ -683,8 +683,8 @@ static int etb_probe(struct amba_device *adev, const struct amba_id *id)
683 if (drvdata->buffer_depth & 0x80000000) 683 if (drvdata->buffer_depth & 0x80000000)
684 return -EINVAL; 684 return -EINVAL;
685 685
686 drvdata->buf = devm_kzalloc(dev, 686 drvdata->buf = devm_kcalloc(dev,
687 drvdata->buffer_depth * 4, GFP_KERNEL); 687 drvdata->buffer_depth, 4, GFP_KERNEL);
688 if (!drvdata->buf) 688 if (!drvdata->buf)
689 return -ENOMEM; 689 return -ENOMEM;
690 690
diff --git a/drivers/hwtracing/coresight/of_coresight.c b/drivers/hwtracing/coresight/of_coresight.c
index a33a92ebe74b..6880bee195c8 100644
--- a/drivers/hwtracing/coresight/of_coresight.c
+++ b/drivers/hwtracing/coresight/of_coresight.c
@@ -71,21 +71,24 @@ static int of_coresight_alloc_memory(struct device *dev,
71 struct coresight_platform_data *pdata) 71 struct coresight_platform_data *pdata)
72{ 72{
73 /* List of output port on this component */ 73 /* List of output port on this component */
74 pdata->outports = devm_kzalloc(dev, pdata->nr_outport * 74 pdata->outports = devm_kcalloc(dev,
75 pdata->nr_outport,
75 sizeof(*pdata->outports), 76 sizeof(*pdata->outports),
76 GFP_KERNEL); 77 GFP_KERNEL);
77 if (!pdata->outports) 78 if (!pdata->outports)
78 return -ENOMEM; 79 return -ENOMEM;
79 80
80 /* Children connected to this component via @outports */ 81 /* Children connected to this component via @outports */
81 pdata->child_names = devm_kzalloc(dev, pdata->nr_outport * 82 pdata->child_names = devm_kcalloc(dev,
83 pdata->nr_outport,
82 sizeof(*pdata->child_names), 84 sizeof(*pdata->child_names),
83 GFP_KERNEL); 85 GFP_KERNEL);
84 if (!pdata->child_names) 86 if (!pdata->child_names)
85 return -ENOMEM; 87 return -ENOMEM;
86 88
87 /* Port number on the child this component is connected to */ 89 /* Port number on the child this component is connected to */
88 pdata->child_ports = devm_kzalloc(dev, pdata->nr_outport * 90 pdata->child_ports = devm_kcalloc(dev,
91 pdata->nr_outport,
89 sizeof(*pdata->child_ports), 92 sizeof(*pdata->child_ports),
90 GFP_KERNEL); 93 GFP_KERNEL);
91 if (!pdata->child_ports) 94 if (!pdata->child_ports)
diff --git a/drivers/i2c/busses/i2c-amd756-s4882.c b/drivers/i2c/busses/i2c-amd756-s4882.c
index 65e324054970..a2f5f992af7a 100644
--- a/drivers/i2c/busses/i2c-amd756-s4882.c
+++ b/drivers/i2c/busses/i2c-amd756-s4882.c
@@ -169,12 +169,12 @@ static int __init amd756_s4882_init(void)
169 169
170 printk(KERN_INFO "Enabling SMBus multiplexing for Tyan S4882\n"); 170 printk(KERN_INFO "Enabling SMBus multiplexing for Tyan S4882\n");
171 /* Define the 5 virtual adapters and algorithms structures */ 171 /* Define the 5 virtual adapters and algorithms structures */
172 if (!(s4882_adapter = kzalloc(5 * sizeof(struct i2c_adapter), 172 if (!(s4882_adapter = kcalloc(5, sizeof(struct i2c_adapter),
173 GFP_KERNEL))) { 173 GFP_KERNEL))) {
174 error = -ENOMEM; 174 error = -ENOMEM;
175 goto ERROR1; 175 goto ERROR1;
176 } 176 }
177 if (!(s4882_algo = kzalloc(5 * sizeof(struct i2c_algorithm), 177 if (!(s4882_algo = kcalloc(5, sizeof(struct i2c_algorithm),
178 GFP_KERNEL))) { 178 GFP_KERNEL))) {
179 error = -ENOMEM; 179 error = -ENOMEM;
180 goto ERROR2; 180 goto ERROR2;
diff --git a/drivers/i2c/busses/i2c-nforce2-s4985.c b/drivers/i2c/busses/i2c-nforce2-s4985.c
index 88eda09e73c0..58a0fbf0e074 100644
--- a/drivers/i2c/busses/i2c-nforce2-s4985.c
+++ b/drivers/i2c/busses/i2c-nforce2-s4985.c
@@ -164,12 +164,12 @@ static int __init nforce2_s4985_init(void)
164 164
165 printk(KERN_INFO "Enabling SMBus multiplexing for Tyan S4985\n"); 165 printk(KERN_INFO "Enabling SMBus multiplexing for Tyan S4985\n");
166 /* Define the 5 virtual adapters and algorithms structures */ 166 /* Define the 5 virtual adapters and algorithms structures */
167 s4985_adapter = kzalloc(5 * sizeof(struct i2c_adapter), GFP_KERNEL); 167 s4985_adapter = kcalloc(5, sizeof(struct i2c_adapter), GFP_KERNEL);
168 if (!s4985_adapter) { 168 if (!s4985_adapter) {
169 error = -ENOMEM; 169 error = -ENOMEM;
170 goto ERROR1; 170 goto ERROR1;
171 } 171 }
172 s4985_algo = kzalloc(5 * sizeof(struct i2c_algorithm), GFP_KERNEL); 172 s4985_algo = kcalloc(5, sizeof(struct i2c_algorithm), GFP_KERNEL);
173 if (!s4985_algo) { 173 if (!s4985_algo) {
174 error = -ENOMEM; 174 error = -ENOMEM;
175 goto ERROR2; 175 goto ERROR2;
diff --git a/drivers/i2c/busses/i2c-nforce2.c b/drivers/i2c/busses/i2c-nforce2.c
index 3241bb9d6c18..f6a1272c5854 100644
--- a/drivers/i2c/busses/i2c-nforce2.c
+++ b/drivers/i2c/busses/i2c-nforce2.c
@@ -381,7 +381,7 @@ static int nforce2_probe(struct pci_dev *dev, const struct pci_device_id *id)
381 int res1, res2; 381 int res1, res2;
382 382
383 /* we support 2 SMBus adapters */ 383 /* we support 2 SMBus adapters */
384 smbuses = kzalloc(2 * sizeof(struct nforce2_smbus), GFP_KERNEL); 384 smbuses = kcalloc(2, sizeof(struct nforce2_smbus), GFP_KERNEL);
385 if (!smbuses) 385 if (!smbuses)
386 return -ENOMEM; 386 return -ENOMEM;
387 pci_set_drvdata(dev, smbuses); 387 pci_set_drvdata(dev, smbuses);
diff --git a/drivers/i2c/busses/i2c-qup.c b/drivers/i2c/busses/i2c-qup.c
index 904dfec7ab96..ebbf9cdec86b 100644
--- a/drivers/i2c/busses/i2c-qup.c
+++ b/drivers/i2c/busses/i2c-qup.c
@@ -1691,8 +1691,8 @@ static int qup_i2c_probe(struct platform_device *pdev)
1691 1691
1692 qup->max_xfer_sg_len = (MX_BLOCKS << 1); 1692 qup->max_xfer_sg_len = (MX_BLOCKS << 1);
1693 blocks = (MX_DMA_BLOCKS << 1) + 1; 1693 blocks = (MX_DMA_BLOCKS << 1) + 1;
1694 qup->btx.sg = devm_kzalloc(&pdev->dev, 1694 qup->btx.sg = devm_kcalloc(&pdev->dev,
1695 sizeof(*qup->btx.sg) * blocks, 1695 blocks, sizeof(*qup->btx.sg),
1696 GFP_KERNEL); 1696 GFP_KERNEL);
1697 if (!qup->btx.sg) { 1697 if (!qup->btx.sg) {
1698 ret = -ENOMEM; 1698 ret = -ENOMEM;
@@ -1700,8 +1700,8 @@ static int qup_i2c_probe(struct platform_device *pdev)
1700 } 1700 }
1701 sg_init_table(qup->btx.sg, blocks); 1701 sg_init_table(qup->btx.sg, blocks);
1702 1702
1703 qup->brx.sg = devm_kzalloc(&pdev->dev, 1703 qup->brx.sg = devm_kcalloc(&pdev->dev,
1704 sizeof(*qup->brx.sg) * blocks, 1704 blocks, sizeof(*qup->brx.sg),
1705 GFP_KERNEL); 1705 GFP_KERNEL);
1706 if (!qup->brx.sg) { 1706 if (!qup->brx.sg) {
1707 ret = -ENOMEM; 1707 ret = -ENOMEM;
diff --git a/drivers/i2c/i2c-dev.c b/drivers/i2c/i2c-dev.c
index 1667b6e7674f..1aca742fde4a 100644
--- a/drivers/i2c/i2c-dev.c
+++ b/drivers/i2c/i2c-dev.c
@@ -244,7 +244,7 @@ static noinline int i2cdev_ioctl_rdwr(struct i2c_client *client,
244 u8 __user **data_ptrs; 244 u8 __user **data_ptrs;
245 int i, res; 245 int i, res;
246 246
247 data_ptrs = kmalloc(nmsgs * sizeof(u8 __user *), GFP_KERNEL); 247 data_ptrs = kmalloc_array(nmsgs, sizeof(u8 __user *), GFP_KERNEL);
248 if (data_ptrs == NULL) { 248 if (data_ptrs == NULL) {
249 kfree(msgs); 249 kfree(msgs);
250 return -ENOMEM; 250 return -ENOMEM;
diff --git a/drivers/i2c/i2c-stub.c b/drivers/i2c/i2c-stub.c
index 4a9ad91c5ba3..f31ec0861979 100644
--- a/drivers/i2c/i2c-stub.c
+++ b/drivers/i2c/i2c-stub.c
@@ -338,8 +338,9 @@ static int __init i2c_stub_allocate_banks(int i)
338 chip->bank_mask >>= 1; 338 chip->bank_mask >>= 1;
339 } 339 }
340 340
341 chip->bank_words = kzalloc(chip->bank_mask * chip->bank_size * 341 chip->bank_words = kcalloc(chip->bank_mask * chip->bank_size,
342 sizeof(u16), GFP_KERNEL); 342 sizeof(u16),
343 GFP_KERNEL);
343 if (!chip->bank_words) 344 if (!chip->bank_words)
344 return -ENOMEM; 345 return -ENOMEM;
345 346
diff --git a/drivers/i2c/muxes/i2c-mux-gpio.c b/drivers/i2c/muxes/i2c-mux-gpio.c
index 1a9973ede443..ddc4bd4ca13b 100644
--- a/drivers/i2c/muxes/i2c-mux-gpio.c
+++ b/drivers/i2c/muxes/i2c-mux-gpio.c
@@ -88,8 +88,8 @@ static int i2c_mux_gpio_probe_dt(struct gpiomux *mux,
88 88
89 mux->data.n_values = of_get_child_count(np); 89 mux->data.n_values = of_get_child_count(np);
90 90
91 values = devm_kzalloc(&pdev->dev, 91 values = devm_kcalloc(&pdev->dev,
92 sizeof(*mux->data.values) * mux->data.n_values, 92 mux->data.n_values, sizeof(*mux->data.values),
93 GFP_KERNEL); 93 GFP_KERNEL);
94 if (!values) { 94 if (!values) {
95 dev_err(&pdev->dev, "Cannot allocate values array"); 95 dev_err(&pdev->dev, "Cannot allocate values array");
@@ -111,8 +111,9 @@ static int i2c_mux_gpio_probe_dt(struct gpiomux *mux,
111 return -EINVAL; 111 return -EINVAL;
112 } 112 }
113 113
114 gpios = devm_kzalloc(&pdev->dev, 114 gpios = devm_kcalloc(&pdev->dev,
115 sizeof(*mux->data.gpios) * mux->data.n_gpios, GFP_KERNEL); 115 mux->data.n_gpios, sizeof(*mux->data.gpios),
116 GFP_KERNEL);
116 if (!gpios) { 117 if (!gpios) {
117 dev_err(&pdev->dev, "Cannot allocate gpios array"); 118 dev_err(&pdev->dev, "Cannot allocate gpios array");
118 return -ENOMEM; 119 return -ENOMEM;
diff --git a/drivers/i2c/muxes/i2c-mux-reg.c b/drivers/i2c/muxes/i2c-mux-reg.c
index c948e5a4cb04..f583f805fee9 100644
--- a/drivers/i2c/muxes/i2c-mux-reg.c
+++ b/drivers/i2c/muxes/i2c-mux-reg.c
@@ -124,8 +124,8 @@ static int i2c_mux_reg_probe_dt(struct regmux *mux,
124 } 124 }
125 mux->data.write_only = of_property_read_bool(np, "write-only"); 125 mux->data.write_only = of_property_read_bool(np, "write-only");
126 126
127 values = devm_kzalloc(&pdev->dev, 127 values = devm_kcalloc(&pdev->dev,
128 sizeof(*mux->data.values) * mux->data.n_values, 128 mux->data.n_values, sizeof(*mux->data.values),
129 GFP_KERNEL); 129 GFP_KERNEL);
130 if (!values) { 130 if (!values) {
131 dev_err(&pdev->dev, "Cannot allocate values array"); 131 dev_err(&pdev->dev, "Cannot allocate values array");
diff --git a/drivers/ide/hpt366.c b/drivers/ide/hpt366.c
index 4b5dc0162e67..e52c58c29d9a 100644
--- a/drivers/ide/hpt366.c
+++ b/drivers/ide/hpt366.c
@@ -1455,7 +1455,7 @@ static int hpt366_init_one(struct pci_dev *dev, const struct pci_device_id *id)
1455 if (info == &hpt36x || info == &hpt374) 1455 if (info == &hpt36x || info == &hpt374)
1456 dev2 = pci_get_slot(dev->bus, dev->devfn + 1); 1456 dev2 = pci_get_slot(dev->bus, dev->devfn + 1);
1457 1457
1458 dyn_info = kzalloc(sizeof(*dyn_info) * (dev2 ? 2 : 1), GFP_KERNEL); 1458 dyn_info = kcalloc(dev2 ? 2 : 1, sizeof(*dyn_info), GFP_KERNEL);
1459 if (dyn_info == NULL) { 1459 if (dyn_info == NULL) {
1460 printk(KERN_ERR "%s %s: out of memory!\n", 1460 printk(KERN_ERR "%s %s: out of memory!\n",
1461 d.name, pci_name(dev)); 1461 d.name, pci_name(dev));
diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c
index 56d7bc228cb3..416a2f353071 100644
--- a/drivers/ide/ide-probe.c
+++ b/drivers/ide/ide-probe.c
@@ -985,8 +985,9 @@ static int hwif_init(ide_hwif_t *hwif)
985 if (!hwif->sg_max_nents) 985 if (!hwif->sg_max_nents)
986 hwif->sg_max_nents = PRD_ENTRIES; 986 hwif->sg_max_nents = PRD_ENTRIES;
987 987
988 hwif->sg_table = kmalloc(sizeof(struct scatterlist)*hwif->sg_max_nents, 988 hwif->sg_table = kmalloc_array(hwif->sg_max_nents,
989 GFP_KERNEL); 989 sizeof(struct scatterlist),
990 GFP_KERNEL);
990 if (!hwif->sg_table) { 991 if (!hwif->sg_table) {
991 printk(KERN_ERR "%s: unable to allocate SG table.\n", hwif->name); 992 printk(KERN_ERR "%s: unable to allocate SG table.\n", hwif->name);
992 goto out; 993 goto out;
diff --git a/drivers/ide/it821x.c b/drivers/ide/it821x.c
index 04029d18a696..36a64c8ea575 100644
--- a/drivers/ide/it821x.c
+++ b/drivers/ide/it821x.c
@@ -652,7 +652,7 @@ static int it821x_init_one(struct pci_dev *dev, const struct pci_device_id *id)
652 struct it821x_dev *itdevs; 652 struct it821x_dev *itdevs;
653 int rc; 653 int rc;
654 654
655 itdevs = kzalloc(2 * sizeof(*itdevs), GFP_KERNEL); 655 itdevs = kcalloc(2, sizeof(*itdevs), GFP_KERNEL);
656 if (itdevs == NULL) { 656 if (itdevs == NULL) {
657 printk(KERN_ERR DRV_NAME " %s: out of memory\n", pci_name(dev)); 657 printk(KERN_ERR DRV_NAME " %s: out of memory\n", pci_name(dev));
658 return -ENOMEM; 658 return -ENOMEM;
diff --git a/drivers/iio/adc/at91_adc.c b/drivers/iio/adc/at91_adc.c
index 71a5ee652b79..44b516863c9d 100644
--- a/drivers/iio/adc/at91_adc.c
+++ b/drivers/iio/adc/at91_adc.c
@@ -624,8 +624,8 @@ static int at91_adc_trigger_init(struct iio_dev *idev)
624 struct at91_adc_state *st = iio_priv(idev); 624 struct at91_adc_state *st = iio_priv(idev);
625 int i, ret; 625 int i, ret;
626 626
627 st->trig = devm_kzalloc(&idev->dev, 627 st->trig = devm_kcalloc(&idev->dev,
628 st->trigger_number * sizeof(*st->trig), 628 st->trigger_number, sizeof(*st->trig),
629 GFP_KERNEL); 629 GFP_KERNEL);
630 630
631 if (st->trig == NULL) { 631 if (st->trig == NULL) {
@@ -908,7 +908,8 @@ static int at91_adc_probe_dt(struct at91_adc_state *st,
908 st->registers = &st->caps->registers; 908 st->registers = &st->caps->registers;
909 st->num_channels = st->caps->num_channels; 909 st->num_channels = st->caps->num_channels;
910 st->trigger_number = of_get_child_count(node); 910 st->trigger_number = of_get_child_count(node);
911 st->trigger_list = devm_kzalloc(&idev->dev, st->trigger_number * 911 st->trigger_list = devm_kcalloc(&idev->dev,
912 st->trigger_number,
912 sizeof(struct at91_adc_trigger), 913 sizeof(struct at91_adc_trigger),
913 GFP_KERNEL); 914 GFP_KERNEL);
914 if (!st->trigger_list) { 915 if (!st->trigger_list) {
diff --git a/drivers/iio/adc/max1027.c b/drivers/iio/adc/max1027.c
index 375da6491499..311c1a89c329 100644
--- a/drivers/iio/adc/max1027.c
+++ b/drivers/iio/adc/max1027.c
@@ -422,8 +422,8 @@ static int max1027_probe(struct spi_device *spi)
422 indio_dev->num_channels = st->info->num_channels; 422 indio_dev->num_channels = st->info->num_channels;
423 indio_dev->available_scan_masks = st->info->available_scan_masks; 423 indio_dev->available_scan_masks = st->info->available_scan_masks;
424 424
425 st->buffer = devm_kmalloc(&indio_dev->dev, 425 st->buffer = devm_kmalloc_array(&indio_dev->dev,
426 indio_dev->num_channels * 2, 426 indio_dev->num_channels, 2,
427 GFP_KERNEL); 427 GFP_KERNEL);
428 if (st->buffer == NULL) { 428 if (st->buffer == NULL) {
429 dev_err(&indio_dev->dev, "Can't allocate buffer\n"); 429 dev_err(&indio_dev->dev, "Can't allocate buffer\n");
diff --git a/drivers/iio/adc/max1363.c b/drivers/iio/adc/max1363.c
index 7f1848dac9bf..7fb4f525714a 100644
--- a/drivers/iio/adc/max1363.c
+++ b/drivers/iio/adc/max1363.c
@@ -1453,8 +1453,10 @@ static int max1363_alloc_scan_masks(struct iio_dev *indio_dev)
1453 int i; 1453 int i;
1454 1454
1455 masks = devm_kzalloc(&indio_dev->dev, 1455 masks = devm_kzalloc(&indio_dev->dev,
1456 BITS_TO_LONGS(MAX1363_MAX_CHANNELS) * sizeof(long) * 1456 array3_size(BITS_TO_LONGS(MAX1363_MAX_CHANNELS),
1457 (st->chip_info->num_modes + 1), GFP_KERNEL); 1457 sizeof(long),
1458 st->chip_info->num_modes + 1),
1459 GFP_KERNEL);
1458 if (!masks) 1460 if (!masks)
1459 return -ENOMEM; 1461 return -ENOMEM;
1460 1462
diff --git a/drivers/iio/adc/twl6030-gpadc.c b/drivers/iio/adc/twl6030-gpadc.c
index dc83f8f6c3d3..e470510e76ea 100644
--- a/drivers/iio/adc/twl6030-gpadc.c
+++ b/drivers/iio/adc/twl6030-gpadc.c
@@ -898,9 +898,10 @@ static int twl6030_gpadc_probe(struct platform_device *pdev)
898 898
899 gpadc = iio_priv(indio_dev); 899 gpadc = iio_priv(indio_dev);
900 900
901 gpadc->twl6030_cal_tbl = devm_kzalloc(dev, 901 gpadc->twl6030_cal_tbl = devm_kcalloc(dev,
902 sizeof(*gpadc->twl6030_cal_tbl) * 902 pdata->nchannels,
903 pdata->nchannels, GFP_KERNEL); 903 sizeof(*gpadc->twl6030_cal_tbl),
904 GFP_KERNEL);
904 if (!gpadc->twl6030_cal_tbl) 905 if (!gpadc->twl6030_cal_tbl)
905 return -ENOMEM; 906 return -ENOMEM;
906 907
diff --git a/drivers/iio/dac/ad5592r-base.c b/drivers/iio/dac/ad5592r-base.c
index 9234c6a09a93..095530c233e4 100644
--- a/drivers/iio/dac/ad5592r-base.c
+++ b/drivers/iio/dac/ad5592r-base.c
@@ -536,8 +536,9 @@ static int ad5592r_alloc_channels(struct ad5592r_state *st)
536 st->channel_offstate[reg] = tmp; 536 st->channel_offstate[reg] = tmp;
537 } 537 }
538 538
539 channels = devm_kzalloc(st->dev, 539 channels = devm_kcalloc(st->dev,
540 (1 + 2 * num_channels) * sizeof(*channels), GFP_KERNEL); 540 1 + 2 * num_channels, sizeof(*channels),
541 GFP_KERNEL);
541 if (!channels) 542 if (!channels)
542 return -ENOMEM; 543 return -ENOMEM;
543 544
diff --git a/drivers/iio/imu/adis_buffer.c b/drivers/iio/imu/adis_buffer.c
index 36607d52fee0..76643c5571aa 100644
--- a/drivers/iio/imu/adis_buffer.c
+++ b/drivers/iio/imu/adis_buffer.c
@@ -38,7 +38,7 @@ int adis_update_scan_mode(struct iio_dev *indio_dev,
38 if (!adis->xfer) 38 if (!adis->xfer)
39 return -ENOMEM; 39 return -ENOMEM;
40 40
41 adis->buffer = kzalloc(indio_dev->scan_bytes * 2, GFP_KERNEL); 41 adis->buffer = kcalloc(indio_dev->scan_bytes, 2, GFP_KERNEL);
42 if (!adis->buffer) 42 if (!adis->buffer)
43 return -ENOMEM; 43 return -ENOMEM;
44 44
diff --git a/drivers/iio/inkern.c b/drivers/iio/inkern.c
index ec98790e2a28..06ca3f7fcc44 100644
--- a/drivers/iio/inkern.c
+++ b/drivers/iio/inkern.c
@@ -436,7 +436,7 @@ struct iio_channel *iio_channel_get_all(struct device *dev)
436 } 436 }
437 437
438 /* NULL terminated array to save passing size */ 438 /* NULL terminated array to save passing size */
439 chans = kzalloc(sizeof(*chans)*(nummaps + 1), GFP_KERNEL); 439 chans = kcalloc(nummaps + 1, sizeof(*chans), GFP_KERNEL);
440 if (chans == NULL) { 440 if (chans == NULL) {
441 ret = -ENOMEM; 441 ret = -ENOMEM;
442 goto error_ret; 442 goto error_ret;
diff --git a/drivers/iio/multiplexer/iio-mux.c b/drivers/iio/multiplexer/iio-mux.c
index 60621ccd67e4..e1f44cecdef4 100644
--- a/drivers/iio/multiplexer/iio-mux.c
+++ b/drivers/iio/multiplexer/iio-mux.c
@@ -281,9 +281,10 @@ static int mux_configure_channel(struct device *dev, struct mux *mux,
281 if (!page) 281 if (!page)
282 return -ENOMEM; 282 return -ENOMEM;
283 } 283 }
284 child->ext_info_cache = devm_kzalloc(dev, 284 child->ext_info_cache = devm_kcalloc(dev,
285 sizeof(*child->ext_info_cache) * 285 num_ext_info,
286 num_ext_info, GFP_KERNEL); 286 sizeof(*child->ext_info_cache),
287 GFP_KERNEL);
287 if (!child->ext_info_cache) 288 if (!child->ext_info_cache)
288 return -ENOMEM; 289 return -ENOMEM;
289 290
diff --git a/drivers/infiniband/core/cache.c b/drivers/infiniband/core/cache.c
index 71a34bee453d..81d66f56e38f 100644
--- a/drivers/infiniband/core/cache.c
+++ b/drivers/infiniband/core/cache.c
@@ -1245,8 +1245,9 @@ int ib_cache_setup_one(struct ib_device *device)
1245 rwlock_init(&device->cache.lock); 1245 rwlock_init(&device->cache.lock);
1246 1246
1247 device->cache.ports = 1247 device->cache.ports =
1248 kzalloc(sizeof(*device->cache.ports) * 1248 kcalloc(rdma_end_port(device) - rdma_start_port(device) + 1,
1249 (rdma_end_port(device) - rdma_start_port(device) + 1), GFP_KERNEL); 1249 sizeof(*device->cache.ports),
1250 GFP_KERNEL);
1250 if (!device->cache.ports) 1251 if (!device->cache.ports)
1251 return -ENOMEM; 1252 return -ENOMEM;
1252 1253
diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
index 6813ee717a38..bff10ab141b0 100644
--- a/drivers/infiniband/core/cma.c
+++ b/drivers/infiniband/core/cma.c
@@ -1855,8 +1855,8 @@ static struct rdma_id_private *cma_new_conn_id(struct rdma_cm_id *listen_id,
1855 1855
1856 rt = &id->route; 1856 rt = &id->route;
1857 rt->num_paths = ib_event->param.req_rcvd.alternate_path ? 2 : 1; 1857 rt->num_paths = ib_event->param.req_rcvd.alternate_path ? 2 : 1;
1858 rt->path_rec = kmalloc(sizeof *rt->path_rec * rt->num_paths, 1858 rt->path_rec = kmalloc_array(rt->num_paths, sizeof(*rt->path_rec),
1859 GFP_KERNEL); 1859 GFP_KERNEL);
1860 if (!rt->path_rec) 1860 if (!rt->path_rec)
1861 goto err; 1861 goto err;
1862 1862
diff --git a/drivers/infiniband/core/device.c b/drivers/infiniband/core/device.c
index 84f51386e1e3..6fa4c59dc7a7 100644
--- a/drivers/infiniband/core/device.c
+++ b/drivers/infiniband/core/device.c
@@ -336,8 +336,8 @@ static int read_port_immutable(struct ib_device *device)
336 * Therefore port_immutable is declared as a 1 based array with 336 * Therefore port_immutable is declared as a 1 based array with
337 * potential empty slots at the beginning. 337 * potential empty slots at the beginning.
338 */ 338 */
339 device->port_immutable = kzalloc(sizeof(*device->port_immutable) 339 device->port_immutable = kcalloc(end_port + 1,
340 * (end_port + 1), 340 sizeof(*device->port_immutable),
341 GFP_KERNEL); 341 GFP_KERNEL);
342 if (!device->port_immutable) 342 if (!device->port_immutable)
343 return -ENOMEM; 343 return -ENOMEM;
diff --git a/drivers/infiniband/core/fmr_pool.c b/drivers/infiniband/core/fmr_pool.c
index a0a9ed719031..a077500f7f32 100644
--- a/drivers/infiniband/core/fmr_pool.c
+++ b/drivers/infiniband/core/fmr_pool.c
@@ -235,8 +235,9 @@ struct ib_fmr_pool *ib_create_fmr_pool(struct ib_pd *pd,
235 235
236 if (params->cache) { 236 if (params->cache) {
237 pool->cache_bucket = 237 pool->cache_bucket =
238 kmalloc(IB_FMR_HASH_SIZE * sizeof *pool->cache_bucket, 238 kmalloc_array(IB_FMR_HASH_SIZE,
239 GFP_KERNEL); 239 sizeof(*pool->cache_bucket),
240 GFP_KERNEL);
240 if (!pool->cache_bucket) { 241 if (!pool->cache_bucket) {
241 ret = -ENOMEM; 242 ret = -ENOMEM;
242 goto out_free_pool; 243 goto out_free_pool;
diff --git a/drivers/infiniband/core/iwpm_util.c b/drivers/infiniband/core/iwpm_util.c
index da12da1c36f6..cdb63f3f4de7 100644
--- a/drivers/infiniband/core/iwpm_util.c
+++ b/drivers/infiniband/core/iwpm_util.c
@@ -56,14 +56,16 @@ int iwpm_init(u8 nl_client)
56 int ret = 0; 56 int ret = 0;
57 mutex_lock(&iwpm_admin_lock); 57 mutex_lock(&iwpm_admin_lock);
58 if (atomic_read(&iwpm_admin.refcount) == 0) { 58 if (atomic_read(&iwpm_admin.refcount) == 0) {
59 iwpm_hash_bucket = kzalloc(IWPM_MAPINFO_HASH_SIZE * 59 iwpm_hash_bucket = kcalloc(IWPM_MAPINFO_HASH_SIZE,
60 sizeof(struct hlist_head), GFP_KERNEL); 60 sizeof(struct hlist_head),
61 GFP_KERNEL);
61 if (!iwpm_hash_bucket) { 62 if (!iwpm_hash_bucket) {
62 ret = -ENOMEM; 63 ret = -ENOMEM;
63 goto init_exit; 64 goto init_exit;
64 } 65 }
65 iwpm_reminfo_bucket = kzalloc(IWPM_REMINFO_HASH_SIZE * 66 iwpm_reminfo_bucket = kcalloc(IWPM_REMINFO_HASH_SIZE,
66 sizeof(struct hlist_head), GFP_KERNEL); 67 sizeof(struct hlist_head),
68 GFP_KERNEL);
67 if (!iwpm_reminfo_bucket) { 69 if (!iwpm_reminfo_bucket) {
68 kfree(iwpm_hash_bucket); 70 kfree(iwpm_hash_bucket);
69 ret = -ENOMEM; 71 ret = -ENOMEM;
diff --git a/drivers/infiniband/core/umem_odp.c b/drivers/infiniband/core/umem_odp.c
index 2aadf5813a40..182436b92ba9 100644
--- a/drivers/infiniband/core/umem_odp.c
+++ b/drivers/infiniband/core/umem_odp.c
@@ -285,13 +285,15 @@ struct ib_umem *ib_alloc_odp_umem(struct ib_ucontext *context,
285 mutex_init(&odp_data->umem_mutex); 285 mutex_init(&odp_data->umem_mutex);
286 init_completion(&odp_data->notifier_completion); 286 init_completion(&odp_data->notifier_completion);
287 287
288 odp_data->page_list = vzalloc(pages * sizeof(*odp_data->page_list)); 288 odp_data->page_list =
289 vzalloc(array_size(pages, sizeof(*odp_data->page_list)));
289 if (!odp_data->page_list) { 290 if (!odp_data->page_list) {
290 ret = -ENOMEM; 291 ret = -ENOMEM;
291 goto out_odp_data; 292 goto out_odp_data;
292 } 293 }
293 294
294 odp_data->dma_list = vzalloc(pages * sizeof(*odp_data->dma_list)); 295 odp_data->dma_list =
296 vzalloc(array_size(pages, sizeof(*odp_data->dma_list)));
295 if (!odp_data->dma_list) { 297 if (!odp_data->dma_list) {
296 ret = -ENOMEM; 298 ret = -ENOMEM;
297 goto out_page_list; 299 goto out_page_list;
@@ -371,15 +373,17 @@ int ib_umem_odp_get(struct ib_ucontext *context, struct ib_umem *umem,
371 init_completion(&umem->odp_data->notifier_completion); 373 init_completion(&umem->odp_data->notifier_completion);
372 374
373 if (ib_umem_num_pages(umem)) { 375 if (ib_umem_num_pages(umem)) {
374 umem->odp_data->page_list = vzalloc(ib_umem_num_pages(umem) * 376 umem->odp_data->page_list =
375 sizeof(*umem->odp_data->page_list)); 377 vzalloc(array_size(sizeof(*umem->odp_data->page_list),
378 ib_umem_num_pages(umem)));
376 if (!umem->odp_data->page_list) { 379 if (!umem->odp_data->page_list) {
377 ret_val = -ENOMEM; 380 ret_val = -ENOMEM;
378 goto out_odp_data; 381 goto out_odp_data;
379 } 382 }
380 383
381 umem->odp_data->dma_list = vzalloc(ib_umem_num_pages(umem) * 384 umem->odp_data->dma_list =
382 sizeof(*umem->odp_data->dma_list)); 385 vzalloc(array_size(sizeof(*umem->odp_data->dma_list),
386 ib_umem_num_pages(umem)));
383 if (!umem->odp_data->dma_list) { 387 if (!umem->odp_data->dma_list) {
384 ret_val = -ENOMEM; 388 ret_val = -ENOMEM;
385 goto out_page_list; 389 goto out_page_list;
diff --git a/drivers/infiniband/core/uverbs_cmd.c b/drivers/infiniband/core/uverbs_cmd.c
index 3179a95c6f5e..3e90b6a1d9d2 100644
--- a/drivers/infiniband/core/uverbs_cmd.c
+++ b/drivers/infiniband/core/uverbs_cmd.c
@@ -3559,8 +3559,8 @@ int ib_uverbs_ex_create_flow(struct ib_uverbs_file *file,
3559 goto err_uobj; 3559 goto err_uobj;
3560 } 3560 }
3561 3561
3562 flow_attr = kzalloc(sizeof(*flow_attr) + cmd.flow_attr.num_of_specs * 3562 flow_attr = kzalloc(struct_size(flow_attr, flows,
3563 sizeof(union ib_flow_spec), GFP_KERNEL); 3563 cmd.flow_attr.num_of_specs), GFP_KERNEL);
3564 if (!flow_attr) { 3564 if (!flow_attr) {
3565 err = -ENOMEM; 3565 err = -ENOMEM;
3566 goto err_put; 3566 goto err_put;
diff --git a/drivers/infiniband/hw/cxgb3/cxio_hal.c b/drivers/infiniband/hw/cxgb3/cxio_hal.c
index 3328acc53c2a..dcb4bba522ba 100644
--- a/drivers/infiniband/hw/cxgb3/cxio_hal.c
+++ b/drivers/infiniband/hw/cxgb3/cxio_hal.c
@@ -279,7 +279,7 @@ int cxio_create_qp(struct cxio_rdev *rdev_p, u32 kernel_domain,
279 if (!wq->qpid) 279 if (!wq->qpid)
280 return -ENOMEM; 280 return -ENOMEM;
281 281
282 wq->rq = kzalloc(depth * sizeof(struct t3_swrq), GFP_KERNEL); 282 wq->rq = kcalloc(depth, sizeof(struct t3_swrq), GFP_KERNEL);
283 if (!wq->rq) 283 if (!wq->rq)
284 goto err1; 284 goto err1;
285 285
@@ -287,7 +287,7 @@ int cxio_create_qp(struct cxio_rdev *rdev_p, u32 kernel_domain,
287 if (!wq->rq_addr) 287 if (!wq->rq_addr)
288 goto err2; 288 goto err2;
289 289
290 wq->sq = kzalloc(depth * sizeof(struct t3_swsq), GFP_KERNEL); 290 wq->sq = kcalloc(depth, sizeof(struct t3_swsq), GFP_KERNEL);
291 if (!wq->sq) 291 if (!wq->sq)
292 goto err3; 292 goto err3;
293 293
diff --git a/drivers/infiniband/hw/cxgb4/device.c b/drivers/infiniband/hw/cxgb4/device.c
index 44161ca4d2a8..a3c3418afd73 100644
--- a/drivers/infiniband/hw/cxgb4/device.c
+++ b/drivers/infiniband/hw/cxgb4/device.c
@@ -859,8 +859,9 @@ static int c4iw_rdev_open(struct c4iw_rdev *rdev)
859 rdev->status_page->cq_size = rdev->lldi.vr->cq.size; 859 rdev->status_page->cq_size = rdev->lldi.vr->cq.size;
860 860
861 if (c4iw_wr_log) { 861 if (c4iw_wr_log) {
862 rdev->wr_log = kzalloc((1 << c4iw_wr_log_size_order) * 862 rdev->wr_log = kcalloc(1 << c4iw_wr_log_size_order,
863 sizeof(*rdev->wr_log), GFP_KERNEL); 863 sizeof(*rdev->wr_log),
864 GFP_KERNEL);
864 if (rdev->wr_log) { 865 if (rdev->wr_log) {
865 rdev->wr_log_size = 1 << c4iw_wr_log_size_order; 866 rdev->wr_log_size = 1 << c4iw_wr_log_size_order;
866 atomic_set(&rdev->wr_log_idx, 0); 867 atomic_set(&rdev->wr_log_idx, 0);
@@ -1445,7 +1446,7 @@ static void recover_queues(struct uld_ctx *ctx)
1445 ctx->dev->db_state = RECOVERY; 1446 ctx->dev->db_state = RECOVERY;
1446 idr_for_each(&ctx->dev->qpidr, count_qps, &count); 1447 idr_for_each(&ctx->dev->qpidr, count_qps, &count);
1447 1448
1448 qp_list.qps = kzalloc(count * sizeof *qp_list.qps, GFP_ATOMIC); 1449 qp_list.qps = kcalloc(count, sizeof(*qp_list.qps), GFP_ATOMIC);
1449 if (!qp_list.qps) { 1450 if (!qp_list.qps) {
1450 spin_unlock_irq(&ctx->dev->lock); 1451 spin_unlock_irq(&ctx->dev->lock);
1451 return; 1452 return;
diff --git a/drivers/infiniband/hw/cxgb4/id_table.c b/drivers/infiniband/hw/cxgb4/id_table.c
index 5c2cfdea06ad..724d23297b35 100644
--- a/drivers/infiniband/hw/cxgb4/id_table.c
+++ b/drivers/infiniband/hw/cxgb4/id_table.c
@@ -92,8 +92,8 @@ int c4iw_id_table_alloc(struct c4iw_id_table *alloc, u32 start, u32 num,
92 alloc->last = 0; 92 alloc->last = 0;
93 alloc->max = num; 93 alloc->max = num;
94 spin_lock_init(&alloc->lock); 94 spin_lock_init(&alloc->lock);
95 alloc->table = kmalloc(BITS_TO_LONGS(num) * sizeof(long), 95 alloc->table = kmalloc_array(BITS_TO_LONGS(num), sizeof(long),
96 GFP_KERNEL); 96 GFP_KERNEL);
97 if (!alloc->table) 97 if (!alloc->table)
98 return -ENOMEM; 98 return -ENOMEM;
99 99
diff --git a/drivers/infiniband/hw/cxgb4/qp.c b/drivers/infiniband/hw/cxgb4/qp.c
index 4106eed1b8fb..aef53305f1c3 100644
--- a/drivers/infiniband/hw/cxgb4/qp.c
+++ b/drivers/infiniband/hw/cxgb4/qp.c
@@ -216,15 +216,15 @@ static int create_qp(struct c4iw_rdev *rdev, struct t4_wq *wq,
216 } 216 }
217 217
218 if (!user) { 218 if (!user) {
219 wq->sq.sw_sq = kzalloc(wq->sq.size * sizeof *wq->sq.sw_sq, 219 wq->sq.sw_sq = kcalloc(wq->sq.size, sizeof(*wq->sq.sw_sq),
220 GFP_KERNEL); 220 GFP_KERNEL);
221 if (!wq->sq.sw_sq) { 221 if (!wq->sq.sw_sq) {
222 ret = -ENOMEM; 222 ret = -ENOMEM;
223 goto free_rq_qid; 223 goto free_rq_qid;
224 } 224 }
225 225
226 wq->rq.sw_rq = kzalloc(wq->rq.size * sizeof *wq->rq.sw_rq, 226 wq->rq.sw_rq = kcalloc(wq->rq.size, sizeof(*wq->rq.sw_rq),
227 GFP_KERNEL); 227 GFP_KERNEL);
228 if (!wq->rq.sw_rq) { 228 if (!wq->rq.sw_rq) {
229 ret = -ENOMEM; 229 ret = -ENOMEM;
230 goto free_sw_sq; 230 goto free_sw_sq;
diff --git a/drivers/infiniband/hw/hfi1/sdma.c b/drivers/infiniband/hw/hfi1/sdma.c
index 298e0e3fc0c9..7fb350b87b49 100644
--- a/drivers/infiniband/hw/hfi1/sdma.c
+++ b/drivers/infiniband/hw/hfi1/sdma.c
@@ -1461,7 +1461,8 @@ int sdma_init(struct hfi1_devdata *dd, u8 port)
1461 if (!sde->descq) 1461 if (!sde->descq)
1462 goto bail; 1462 goto bail;
1463 sde->tx_ring = 1463 sde->tx_ring =
1464 kvzalloc_node(sizeof(struct sdma_txreq *) * descq_cnt, 1464 kvzalloc_node(array_size(descq_cnt,
1465 sizeof(struct sdma_txreq *)),
1465 GFP_KERNEL, dd->node); 1466 GFP_KERNEL, dd->node);
1466 if (!sde->tx_ring) 1467 if (!sde->tx_ring)
1467 goto bail; 1468 goto bail;
diff --git a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c
index 0e8dad68910a..a6e11be0ea0f 100644
--- a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c
+++ b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c
@@ -3177,7 +3177,7 @@ static int hns_roce_v2_modify_qp(struct ib_qp *ibqp,
3177 struct device *dev = hr_dev->dev; 3177 struct device *dev = hr_dev->dev;
3178 int ret = -EINVAL; 3178 int ret = -EINVAL;
3179 3179
3180 context = kzalloc(2 * sizeof(*context), GFP_KERNEL); 3180 context = kcalloc(2, sizeof(*context), GFP_KERNEL);
3181 if (!context) 3181 if (!context)
3182 return -ENOMEM; 3182 return -ENOMEM;
3183 3183
diff --git a/drivers/infiniband/hw/hns/hns_roce_mr.c b/drivers/infiniband/hw/hns/hns_roce_mr.c
index d1fe0e7957e3..eb26a5f6fc58 100644
--- a/drivers/infiniband/hw/hns/hns_roce_mr.c
+++ b/drivers/infiniband/hw/hns/hns_roce_mr.c
@@ -144,7 +144,7 @@ static int hns_roce_buddy_init(struct hns_roce_buddy *buddy, int max_order)
144 buddy->bits[i] = kcalloc(s, sizeof(long), GFP_KERNEL | 144 buddy->bits[i] = kcalloc(s, sizeof(long), GFP_KERNEL |
145 __GFP_NOWARN); 145 __GFP_NOWARN);
146 if (!buddy->bits[i]) { 146 if (!buddy->bits[i]) {
147 buddy->bits[i] = vzalloc(s * sizeof(long)); 147 buddy->bits[i] = vzalloc(array_size(s, sizeof(long)));
148 if (!buddy->bits[i]) 148 if (!buddy->bits[i])
149 goto err_out_free; 149 goto err_out_free;
150 } 150 }
diff --git a/drivers/infiniband/hw/mlx4/mad.c b/drivers/infiniband/hw/mlx4/mad.c
index d604b3d5aa3e..90a3e2642c2e 100644
--- a/drivers/infiniband/hw/mlx4/mad.c
+++ b/drivers/infiniband/hw/mlx4/mad.c
@@ -1613,7 +1613,8 @@ static int mlx4_ib_alloc_pv_bufs(struct mlx4_ib_demux_pv_ctx *ctx,
1613 1613
1614 tun_qp = &ctx->qp[qp_type]; 1614 tun_qp = &ctx->qp[qp_type];
1615 1615
1616 tun_qp->ring = kzalloc(sizeof (struct mlx4_ib_buf) * MLX4_NUM_TUNNEL_BUFS, 1616 tun_qp->ring = kcalloc(MLX4_NUM_TUNNEL_BUFS,
1617 sizeof(struct mlx4_ib_buf),
1617 GFP_KERNEL); 1618 GFP_KERNEL);
1618 if (!tun_qp->ring) 1619 if (!tun_qp->ring)
1619 return -ENOMEM; 1620 return -ENOMEM;
diff --git a/drivers/infiniband/hw/mlx4/main.c b/drivers/infiniband/hw/mlx4/main.c
index f839bf3b1497..4ec519afc45b 100644
--- a/drivers/infiniband/hw/mlx4/main.c
+++ b/drivers/infiniband/hw/mlx4/main.c
@@ -302,7 +302,8 @@ static int mlx4_ib_add_gid(const union ib_gid *gid,
302 ctx->refcount++; 302 ctx->refcount++;
303 } 303 }
304 if (!ret && hw_update) { 304 if (!ret && hw_update) {
305 gids = kmalloc(sizeof(*gids) * MLX4_MAX_PORT_GIDS, GFP_ATOMIC); 305 gids = kmalloc_array(MLX4_MAX_PORT_GIDS, sizeof(*gids),
306 GFP_ATOMIC);
306 if (!gids) { 307 if (!gids) {
307 ret = -ENOMEM; 308 ret = -ENOMEM;
308 } else { 309 } else {
@@ -355,7 +356,8 @@ static int mlx4_ib_del_gid(const struct ib_gid_attr *attr, void **context)
355 if (!ret && hw_update) { 356 if (!ret && hw_update) {
356 int i; 357 int i;
357 358
358 gids = kmalloc(sizeof(*gids) * MLX4_MAX_PORT_GIDS, GFP_ATOMIC); 359 gids = kmalloc_array(MLX4_MAX_PORT_GIDS, sizeof(*gids),
360 GFP_ATOMIC);
359 if (!gids) { 361 if (!gids) {
360 ret = -ENOMEM; 362 ret = -ENOMEM;
361 } else { 363 } else {
@@ -2872,9 +2874,9 @@ static void *mlx4_ib_add(struct mlx4_dev *dev)
2872 goto err_counter; 2874 goto err_counter;
2873 2875
2874 ibdev->ib_uc_qpns_bitmap = 2876 ibdev->ib_uc_qpns_bitmap =
2875 kmalloc(BITS_TO_LONGS(ibdev->steer_qpn_count) * 2877 kmalloc_array(BITS_TO_LONGS(ibdev->steer_qpn_count),
2876 sizeof(long), 2878 sizeof(long),
2877 GFP_KERNEL); 2879 GFP_KERNEL);
2878 if (!ibdev->ib_uc_qpns_bitmap) 2880 if (!ibdev->ib_uc_qpns_bitmap)
2879 goto err_steer_qp_release; 2881 goto err_steer_qp_release;
2880 2882
diff --git a/drivers/infiniband/hw/mlx4/qp.c b/drivers/infiniband/hw/mlx4/qp.c
index cd2c08c45334..3b8045fd23ed 100644
--- a/drivers/infiniband/hw/mlx4/qp.c
+++ b/drivers/infiniband/hw/mlx4/qp.c
@@ -573,8 +573,8 @@ static int alloc_proxy_bufs(struct ib_device *dev, struct mlx4_ib_qp *qp)
573 int i; 573 int i;
574 574
575 qp->sqp_proxy_rcv = 575 qp->sqp_proxy_rcv =
576 kmalloc(sizeof (struct mlx4_ib_buf) * qp->rq.wqe_cnt, 576 kmalloc_array(qp->rq.wqe_cnt, sizeof(struct mlx4_ib_buf),
577 GFP_KERNEL); 577 GFP_KERNEL);
578 if (!qp->sqp_proxy_rcv) 578 if (!qp->sqp_proxy_rcv)
579 return -ENOMEM; 579 return -ENOMEM;
580 for (i = 0; i < qp->rq.wqe_cnt; i++) { 580 for (i = 0; i < qp->rq.wqe_cnt; i++) {
diff --git a/drivers/infiniband/hw/mlx5/srq.c b/drivers/infiniband/hw/mlx5/srq.c
index 3c7522d025f2..0af7b7905550 100644
--- a/drivers/infiniband/hw/mlx5/srq.c
+++ b/drivers/infiniband/hw/mlx5/srq.c
@@ -127,7 +127,7 @@ static int create_srq_user(struct ib_pd *pd, struct mlx5_ib_srq *srq,
127 goto err_umem; 127 goto err_umem;
128 } 128 }
129 129
130 in->pas = kvzalloc(sizeof(*in->pas) * ncont, GFP_KERNEL); 130 in->pas = kvcalloc(ncont, sizeof(*in->pas), GFP_KERNEL);
131 if (!in->pas) { 131 if (!in->pas) {
132 err = -ENOMEM; 132 err = -ENOMEM;
133 goto err_umem; 133 goto err_umem;
@@ -189,7 +189,7 @@ static int create_srq_kernel(struct mlx5_ib_dev *dev, struct mlx5_ib_srq *srq,
189 } 189 }
190 190
191 mlx5_ib_dbg(dev, "srq->buf.page_shift = %d\n", srq->buf.page_shift); 191 mlx5_ib_dbg(dev, "srq->buf.page_shift = %d\n", srq->buf.page_shift);
192 in->pas = kvzalloc(sizeof(*in->pas) * srq->buf.npages, GFP_KERNEL); 192 in->pas = kvcalloc(srq->buf.npages, sizeof(*in->pas), GFP_KERNEL);
193 if (!in->pas) { 193 if (!in->pas) {
194 err = -ENOMEM; 194 err = -ENOMEM;
195 goto err_buf; 195 goto err_buf;
diff --git a/drivers/infiniband/hw/mthca/mthca_allocator.c b/drivers/infiniband/hw/mthca/mthca_allocator.c
index b4e0cf4e95cd..aaf10dd5364d 100644
--- a/drivers/infiniband/hw/mthca/mthca_allocator.c
+++ b/drivers/infiniband/hw/mthca/mthca_allocator.c
@@ -90,8 +90,8 @@ int mthca_alloc_init(struct mthca_alloc *alloc, u32 num, u32 mask,
90 alloc->max = num; 90 alloc->max = num;
91 alloc->mask = mask; 91 alloc->mask = mask;
92 spin_lock_init(&alloc->lock); 92 spin_lock_init(&alloc->lock);
93 alloc->table = kmalloc(BITS_TO_LONGS(num) * sizeof (long), 93 alloc->table = kmalloc_array(BITS_TO_LONGS(num), sizeof(long),
94 GFP_KERNEL); 94 GFP_KERNEL);
95 if (!alloc->table) 95 if (!alloc->table)
96 return -ENOMEM; 96 return -ENOMEM;
97 97
@@ -162,7 +162,8 @@ int mthca_array_init(struct mthca_array *array, int nent)
162 int npage = (nent * sizeof (void *) + PAGE_SIZE - 1) / PAGE_SIZE; 162 int npage = (nent * sizeof (void *) + PAGE_SIZE - 1) / PAGE_SIZE;
163 int i; 163 int i;
164 164
165 array->page_list = kmalloc(npage * sizeof *array->page_list, GFP_KERNEL); 165 array->page_list = kmalloc_array(npage, sizeof(*array->page_list),
166 GFP_KERNEL);
166 if (!array->page_list) 167 if (!array->page_list)
167 return -ENOMEM; 168 return -ENOMEM;
168 169
@@ -220,7 +221,8 @@ int mthca_buf_alloc(struct mthca_dev *dev, int size, int max_direct,
220 npages *= 2; 221 npages *= 2;
221 } 222 }
222 223
223 dma_list = kmalloc(npages * sizeof *dma_list, GFP_KERNEL); 224 dma_list = kmalloc_array(npages, sizeof(*dma_list),
225 GFP_KERNEL);
224 if (!dma_list) 226 if (!dma_list)
225 goto err_free; 227 goto err_free;
226 228
@@ -231,12 +233,14 @@ int mthca_buf_alloc(struct mthca_dev *dev, int size, int max_direct,
231 npages = (size + PAGE_SIZE - 1) / PAGE_SIZE; 233 npages = (size + PAGE_SIZE - 1) / PAGE_SIZE;
232 shift = PAGE_SHIFT; 234 shift = PAGE_SHIFT;
233 235
234 dma_list = kmalloc(npages * sizeof *dma_list, GFP_KERNEL); 236 dma_list = kmalloc_array(npages, sizeof(*dma_list),
237 GFP_KERNEL);
235 if (!dma_list) 238 if (!dma_list)
236 return -ENOMEM; 239 return -ENOMEM;
237 240
238 buf->page_list = kmalloc(npages * sizeof *buf->page_list, 241 buf->page_list = kmalloc_array(npages,
239 GFP_KERNEL); 242 sizeof(*buf->page_list),
243 GFP_KERNEL);
240 if (!buf->page_list) 244 if (!buf->page_list)
241 goto err_out; 245 goto err_out;
242 246
diff --git a/drivers/infiniband/hw/mthca/mthca_cmd.c b/drivers/infiniband/hw/mthca/mthca_cmd.c
index 419a2a20c047..83aa47eb81a9 100644
--- a/drivers/infiniband/hw/mthca/mthca_cmd.c
+++ b/drivers/infiniband/hw/mthca/mthca_cmd.c
@@ -565,9 +565,9 @@ int mthca_cmd_use_events(struct mthca_dev *dev)
565{ 565{
566 int i; 566 int i;
567 567
568 dev->cmd.context = kmalloc(dev->cmd.max_cmds * 568 dev->cmd.context = kmalloc_array(dev->cmd.max_cmds,
569 sizeof (struct mthca_cmd_context), 569 sizeof(struct mthca_cmd_context),
570 GFP_KERNEL); 570 GFP_KERNEL);
571 if (!dev->cmd.context) 571 if (!dev->cmd.context)
572 return -ENOMEM; 572 return -ENOMEM;
573 573
diff --git a/drivers/infiniband/hw/mthca/mthca_eq.c b/drivers/infiniband/hw/mthca/mthca_eq.c
index 690201738993..30400ea4808b 100644
--- a/drivers/infiniband/hw/mthca/mthca_eq.c
+++ b/drivers/infiniband/hw/mthca/mthca_eq.c
@@ -479,15 +479,15 @@ static int mthca_create_eq(struct mthca_dev *dev,
479 eq->nent = roundup_pow_of_two(max(nent, 2)); 479 eq->nent = roundup_pow_of_two(max(nent, 2));
480 npages = ALIGN(eq->nent * MTHCA_EQ_ENTRY_SIZE, PAGE_SIZE) / PAGE_SIZE; 480 npages = ALIGN(eq->nent * MTHCA_EQ_ENTRY_SIZE, PAGE_SIZE) / PAGE_SIZE;
481 481
482 eq->page_list = kmalloc(npages * sizeof *eq->page_list, 482 eq->page_list = kmalloc_array(npages, sizeof(*eq->page_list),
483 GFP_KERNEL); 483 GFP_KERNEL);
484 if (!eq->page_list) 484 if (!eq->page_list)
485 goto err_out; 485 goto err_out;
486 486
487 for (i = 0; i < npages; ++i) 487 for (i = 0; i < npages; ++i)
488 eq->page_list[i].buf = NULL; 488 eq->page_list[i].buf = NULL;
489 489
490 dma_list = kmalloc(npages * sizeof *dma_list, GFP_KERNEL); 490 dma_list = kmalloc_array(npages, sizeof(*dma_list), GFP_KERNEL);
491 if (!dma_list) 491 if (!dma_list)
492 goto err_out_free; 492 goto err_out_free;
493 493
diff --git a/drivers/infiniband/hw/mthca/mthca_memfree.c b/drivers/infiniband/hw/mthca/mthca_memfree.c
index 7a31be3c3e73..cc9c0c8ccba3 100644
--- a/drivers/infiniband/hw/mthca/mthca_memfree.c
+++ b/drivers/infiniband/hw/mthca/mthca_memfree.c
@@ -712,9 +712,9 @@ int mthca_init_db_tab(struct mthca_dev *dev)
712 dev->db_tab->max_group1 = 0; 712 dev->db_tab->max_group1 = 0;
713 dev->db_tab->min_group2 = dev->db_tab->npages - 1; 713 dev->db_tab->min_group2 = dev->db_tab->npages - 1;
714 714
715 dev->db_tab->page = kmalloc(dev->db_tab->npages * 715 dev->db_tab->page = kmalloc_array(dev->db_tab->npages,
716 sizeof *dev->db_tab->page, 716 sizeof(*dev->db_tab->page),
717 GFP_KERNEL); 717 GFP_KERNEL);
718 if (!dev->db_tab->page) { 718 if (!dev->db_tab->page) {
719 kfree(dev->db_tab); 719 kfree(dev->db_tab);
720 return -ENOMEM; 720 return -ENOMEM;
diff --git a/drivers/infiniband/hw/mthca/mthca_mr.c b/drivers/infiniband/hw/mthca/mthca_mr.c
index ed9a989e501b..6686042aafb4 100644
--- a/drivers/infiniband/hw/mthca/mthca_mr.c
+++ b/drivers/infiniband/hw/mthca/mthca_mr.c
@@ -144,7 +144,7 @@ static int mthca_buddy_init(struct mthca_buddy *buddy, int max_order)
144 buddy->max_order = max_order; 144 buddy->max_order = max_order;
145 spin_lock_init(&buddy->lock); 145 spin_lock_init(&buddy->lock);
146 146
147 buddy->bits = kzalloc((buddy->max_order + 1) * sizeof (long *), 147 buddy->bits = kcalloc(buddy->max_order + 1, sizeof(long *),
148 GFP_KERNEL); 148 GFP_KERNEL);
149 buddy->num_free = kcalloc((buddy->max_order + 1), sizeof *buddy->num_free, 149 buddy->num_free = kcalloc((buddy->max_order + 1), sizeof *buddy->num_free,
150 GFP_KERNEL); 150 GFP_KERNEL);
@@ -153,7 +153,7 @@ static int mthca_buddy_init(struct mthca_buddy *buddy, int max_order)
153 153
154 for (i = 0; i <= buddy->max_order; ++i) { 154 for (i = 0; i <= buddy->max_order; ++i) {
155 s = BITS_TO_LONGS(1 << (buddy->max_order - i)); 155 s = BITS_TO_LONGS(1 << (buddy->max_order - i));
156 buddy->bits[i] = kmalloc(s * sizeof (long), GFP_KERNEL); 156 buddy->bits[i] = kmalloc_array(s, sizeof(long), GFP_KERNEL);
157 if (!buddy->bits[i]) 157 if (!buddy->bits[i])
158 goto err_out_free; 158 goto err_out_free;
159 bitmap_zero(buddy->bits[i], 159 bitmap_zero(buddy->bits[i],
diff --git a/drivers/infiniband/hw/mthca/mthca_profile.c b/drivers/infiniband/hw/mthca/mthca_profile.c
index 15d064479ef6..7ea970774839 100644
--- a/drivers/infiniband/hw/mthca/mthca_profile.c
+++ b/drivers/infiniband/hw/mthca/mthca_profile.c
@@ -79,7 +79,7 @@ s64 mthca_make_profile(struct mthca_dev *dev,
79 struct mthca_resource *profile; 79 struct mthca_resource *profile;
80 int i, j; 80 int i, j;
81 81
82 profile = kzalloc(MTHCA_RES_NUM * sizeof *profile, GFP_KERNEL); 82 profile = kcalloc(MTHCA_RES_NUM, sizeof(*profile), GFP_KERNEL);
83 if (!profile) 83 if (!profile)
84 return -ENOMEM; 84 return -ENOMEM;
85 85
diff --git a/drivers/infiniband/hw/mthca/mthca_qp.c b/drivers/infiniband/hw/mthca/mthca_qp.c
index d21960cd9a49..af1c49d70b89 100644
--- a/drivers/infiniband/hw/mthca/mthca_qp.c
+++ b/drivers/infiniband/hw/mthca/mthca_qp.c
@@ -1054,8 +1054,8 @@ static int mthca_alloc_wqe_buf(struct mthca_dev *dev,
1054 size = PAGE_ALIGN(qp->send_wqe_offset + 1054 size = PAGE_ALIGN(qp->send_wqe_offset +
1055 (qp->sq.max << qp->sq.wqe_shift)); 1055 (qp->sq.max << qp->sq.wqe_shift));
1056 1056
1057 qp->wrid = kmalloc((qp->rq.max + qp->sq.max) * sizeof (u64), 1057 qp->wrid = kmalloc_array(qp->rq.max + qp->sq.max, sizeof(u64),
1058 GFP_KERNEL); 1058 GFP_KERNEL);
1059 if (!qp->wrid) 1059 if (!qp->wrid)
1060 goto err_out; 1060 goto err_out;
1061 1061
diff --git a/drivers/infiniband/hw/mthca/mthca_srq.c b/drivers/infiniband/hw/mthca/mthca_srq.c
index d22f970480c0..f79732bc73b4 100644
--- a/drivers/infiniband/hw/mthca/mthca_srq.c
+++ b/drivers/infiniband/hw/mthca/mthca_srq.c
@@ -155,7 +155,7 @@ static int mthca_alloc_srq_buf(struct mthca_dev *dev, struct mthca_pd *pd,
155 if (pd->ibpd.uobject) 155 if (pd->ibpd.uobject)
156 return 0; 156 return 0;
157 157
158 srq->wrid = kmalloc(srq->max * sizeof (u64), GFP_KERNEL); 158 srq->wrid = kmalloc_array(srq->max, sizeof(u64), GFP_KERNEL);
159 if (!srq->wrid) 159 if (!srq->wrid)
160 return -ENOMEM; 160 return -ENOMEM;
161 161
diff --git a/drivers/infiniband/hw/nes/nes_mgt.c b/drivers/infiniband/hw/nes/nes_mgt.c
index 21e0ebd39a05..9bdb84dc225c 100644
--- a/drivers/infiniband/hw/nes/nes_mgt.c
+++ b/drivers/infiniband/hw/nes/nes_mgt.c
@@ -878,7 +878,8 @@ int nes_init_mgt_qp(struct nes_device *nesdev, struct net_device *netdev, struct
878 int ret; 878 int ret;
879 879
880 /* Allocate space the all mgt QPs once */ 880 /* Allocate space the all mgt QPs once */
881 mgtvnic = kzalloc(NES_MGT_QP_COUNT * sizeof(struct nes_vnic_mgt), GFP_KERNEL); 881 mgtvnic = kcalloc(NES_MGT_QP_COUNT, sizeof(struct nes_vnic_mgt),
882 GFP_KERNEL);
882 if (!mgtvnic) 883 if (!mgtvnic)
883 return -ENOMEM; 884 return -ENOMEM;
884 885
diff --git a/drivers/infiniband/hw/nes/nes_nic.c b/drivers/infiniband/hw/nes/nes_nic.c
index 007d5e8a0121..61014e251555 100644
--- a/drivers/infiniband/hw/nes/nes_nic.c
+++ b/drivers/infiniband/hw/nes/nes_nic.c
@@ -904,7 +904,7 @@ static void nes_netdev_set_multicast_list(struct net_device *netdev)
904 int i; 904 int i;
905 struct netdev_hw_addr *ha; 905 struct netdev_hw_addr *ha;
906 906
907 addrs = kmalloc(ETH_ALEN * mc_count, GFP_ATOMIC); 907 addrs = kmalloc_array(mc_count, ETH_ALEN, GFP_ATOMIC);
908 if (!addrs) { 908 if (!addrs) {
909 set_allmulti(nesdev, nic_active_bit); 909 set_allmulti(nesdev, nic_active_bit);
910 goto unlock; 910 goto unlock;
diff --git a/drivers/infiniband/hw/nes/nes_verbs.c b/drivers/infiniband/hw/nes/nes_verbs.c
index 1040a6e34230..32f26556c808 100644
--- a/drivers/infiniband/hw/nes/nes_verbs.c
+++ b/drivers/infiniband/hw/nes/nes_verbs.c
@@ -2254,8 +2254,9 @@ static struct ib_mr *nes_reg_user_mr(struct ib_pd *pd, u64 start, u64 length,
2254 ibmr = ERR_PTR(-ENOMEM); 2254 ibmr = ERR_PTR(-ENOMEM);
2255 goto reg_user_mr_err; 2255 goto reg_user_mr_err;
2256 } 2256 }
2257 root_vpbl.leaf_vpbl = kzalloc(sizeof(*root_vpbl.leaf_vpbl)*1024, 2257 root_vpbl.leaf_vpbl = kcalloc(1024,
2258 GFP_KERNEL); 2258 sizeof(*root_vpbl.leaf_vpbl),
2259 GFP_KERNEL);
2259 if (!root_vpbl.leaf_vpbl) { 2260 if (!root_vpbl.leaf_vpbl) {
2260 ib_umem_release(region); 2261 ib_umem_release(region);
2261 pci_free_consistent(nesdev->pcidev, 8192, root_vpbl.pbl_vbase, 2262 pci_free_consistent(nesdev->pcidev, 8192, root_vpbl.pbl_vbase,
diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_hw.c b/drivers/infiniband/hw/ocrdma/ocrdma_hw.c
index 2c260e1c29d1..6c136e5017fe 100644
--- a/drivers/infiniband/hw/ocrdma/ocrdma_hw.c
+++ b/drivers/infiniband/hw/ocrdma/ocrdma_hw.c
@@ -3096,7 +3096,7 @@ static int ocrdma_create_eqs(struct ocrdma_dev *dev)
3096 if (!num_eq) 3096 if (!num_eq)
3097 return -EINVAL; 3097 return -EINVAL;
3098 3098
3099 dev->eq_tbl = kzalloc(sizeof(struct ocrdma_eq) * num_eq, GFP_KERNEL); 3099 dev->eq_tbl = kcalloc(num_eq, sizeof(struct ocrdma_eq), GFP_KERNEL);
3100 if (!dev->eq_tbl) 3100 if (!dev->eq_tbl)
3101 return -ENOMEM; 3101 return -ENOMEM;
3102 3102
diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_main.c b/drivers/infiniband/hw/ocrdma/ocrdma_main.c
index eb8b6a935016..5962c0ed9847 100644
--- a/drivers/infiniband/hw/ocrdma/ocrdma_main.c
+++ b/drivers/infiniband/hw/ocrdma/ocrdma_main.c
@@ -221,19 +221,20 @@ static int ocrdma_register_device(struct ocrdma_dev *dev)
221static int ocrdma_alloc_resources(struct ocrdma_dev *dev) 221static int ocrdma_alloc_resources(struct ocrdma_dev *dev)
222{ 222{
223 mutex_init(&dev->dev_lock); 223 mutex_init(&dev->dev_lock);
224 dev->cq_tbl = kzalloc(sizeof(struct ocrdma_cq *) * 224 dev->cq_tbl = kcalloc(OCRDMA_MAX_CQ, sizeof(struct ocrdma_cq *),
225 OCRDMA_MAX_CQ, GFP_KERNEL); 225 GFP_KERNEL);
226 if (!dev->cq_tbl) 226 if (!dev->cq_tbl)
227 goto alloc_err; 227 goto alloc_err;
228 228
229 if (dev->attr.max_qp) { 229 if (dev->attr.max_qp) {
230 dev->qp_tbl = kzalloc(sizeof(struct ocrdma_qp *) * 230 dev->qp_tbl = kcalloc(OCRDMA_MAX_QP,
231 OCRDMA_MAX_QP, GFP_KERNEL); 231 sizeof(struct ocrdma_qp *),
232 GFP_KERNEL);
232 if (!dev->qp_tbl) 233 if (!dev->qp_tbl)
233 goto alloc_err; 234 goto alloc_err;
234 } 235 }
235 236
236 dev->stag_arr = kzalloc(sizeof(u64) * OCRDMA_MAX_STAG, GFP_KERNEL); 237 dev->stag_arr = kcalloc(OCRDMA_MAX_STAG, sizeof(u64), GFP_KERNEL);
237 if (dev->stag_arr == NULL) 238 if (dev->stag_arr == NULL)
238 goto alloc_err; 239 goto alloc_err;
239 240
diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
index 784ed6b09a46..82e20fc32890 100644
--- a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
+++ b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
@@ -843,8 +843,8 @@ static int ocrdma_build_pbl_tbl(struct ocrdma_dev *dev, struct ocrdma_hw_mr *mr)
843 void *va; 843 void *va;
844 dma_addr_t pa; 844 dma_addr_t pa;
845 845
846 mr->pbl_table = kzalloc(sizeof(struct ocrdma_pbl) * 846 mr->pbl_table = kcalloc(mr->num_pbls, sizeof(struct ocrdma_pbl),
847 mr->num_pbls, GFP_KERNEL); 847 GFP_KERNEL);
848 848
849 if (!mr->pbl_table) 849 if (!mr->pbl_table)
850 return -ENOMEM; 850 return -ENOMEM;
@@ -1323,12 +1323,12 @@ static void ocrdma_set_qp_db(struct ocrdma_dev *dev, struct ocrdma_qp *qp,
1323static int ocrdma_alloc_wr_id_tbl(struct ocrdma_qp *qp) 1323static int ocrdma_alloc_wr_id_tbl(struct ocrdma_qp *qp)
1324{ 1324{
1325 qp->wqe_wr_id_tbl = 1325 qp->wqe_wr_id_tbl =
1326 kzalloc(sizeof(*(qp->wqe_wr_id_tbl)) * qp->sq.max_cnt, 1326 kcalloc(qp->sq.max_cnt, sizeof(*(qp->wqe_wr_id_tbl)),
1327 GFP_KERNEL); 1327 GFP_KERNEL);
1328 if (qp->wqe_wr_id_tbl == NULL) 1328 if (qp->wqe_wr_id_tbl == NULL)
1329 return -ENOMEM; 1329 return -ENOMEM;
1330 qp->rqe_wr_id_tbl = 1330 qp->rqe_wr_id_tbl =
1331 kzalloc(sizeof(u64) * qp->rq.max_cnt, GFP_KERNEL); 1331 kcalloc(qp->rq.max_cnt, sizeof(u64), GFP_KERNEL);
1332 if (qp->rqe_wr_id_tbl == NULL) 1332 if (qp->rqe_wr_id_tbl == NULL)
1333 return -ENOMEM; 1333 return -ENOMEM;
1334 1334
@@ -1865,15 +1865,16 @@ struct ib_srq *ocrdma_create_srq(struct ib_pd *ibpd,
1865 1865
1866 if (udata == NULL) { 1866 if (udata == NULL) {
1867 status = -ENOMEM; 1867 status = -ENOMEM;
1868 srq->rqe_wr_id_tbl = kzalloc(sizeof(u64) * srq->rq.max_cnt, 1868 srq->rqe_wr_id_tbl = kcalloc(srq->rq.max_cnt, sizeof(u64),
1869 GFP_KERNEL); 1869 GFP_KERNEL);
1870 if (srq->rqe_wr_id_tbl == NULL) 1870 if (srq->rqe_wr_id_tbl == NULL)
1871 goto arm_err; 1871 goto arm_err;
1872 1872
1873 srq->bit_fields_len = (srq->rq.max_cnt / 32) + 1873 srq->bit_fields_len = (srq->rq.max_cnt / 32) +
1874 (srq->rq.max_cnt % 32 ? 1 : 0); 1874 (srq->rq.max_cnt % 32 ? 1 : 0);
1875 srq->idx_bit_fields = 1875 srq->idx_bit_fields =
1876 kmalloc(srq->bit_fields_len * sizeof(u32), GFP_KERNEL); 1876 kmalloc_array(srq->bit_fields_len, sizeof(u32),
1877 GFP_KERNEL);
1877 if (srq->idx_bit_fields == NULL) 1878 if (srq->idx_bit_fields == NULL)
1878 goto arm_err; 1879 goto arm_err;
1879 memset(srq->idx_bit_fields, 0xff, 1880 memset(srq->idx_bit_fields, 0xff,
diff --git a/drivers/infiniband/hw/qedr/main.c b/drivers/infiniband/hw/qedr/main.c
index f4cb60b658ea..ad22b32bbd9c 100644
--- a/drivers/infiniband/hw/qedr/main.c
+++ b/drivers/infiniband/hw/qedr/main.c
@@ -317,8 +317,8 @@ static int qedr_alloc_resources(struct qedr_dev *dev)
317 u16 n_entries; 317 u16 n_entries;
318 int i, rc; 318 int i, rc;
319 319
320 dev->sgid_tbl = kzalloc(sizeof(union ib_gid) * 320 dev->sgid_tbl = kcalloc(QEDR_MAX_SGID, sizeof(union ib_gid),
321 QEDR_MAX_SGID, GFP_KERNEL); 321 GFP_KERNEL);
322 if (!dev->sgid_tbl) 322 if (!dev->sgid_tbl)
323 return -ENOMEM; 323 return -ENOMEM;
324 324
diff --git a/drivers/infiniband/hw/qedr/verbs.c b/drivers/infiniband/hw/qedr/verbs.c
index 710032f1fad7..f7ac8fc9b531 100644
--- a/drivers/infiniband/hw/qedr/verbs.c
+++ b/drivers/infiniband/hw/qedr/verbs.c
@@ -1614,7 +1614,7 @@ static int qedr_create_kernel_qp(struct qedr_dev *dev,
1614 qp->sq.max_wr = min_t(u32, attrs->cap.max_send_wr * dev->wq_multiplier, 1614 qp->sq.max_wr = min_t(u32, attrs->cap.max_send_wr * dev->wq_multiplier,
1615 dev->attr.max_sqe); 1615 dev->attr.max_sqe);
1616 1616
1617 qp->wqe_wr_id = kzalloc(qp->sq.max_wr * sizeof(*qp->wqe_wr_id), 1617 qp->wqe_wr_id = kcalloc(qp->sq.max_wr, sizeof(*qp->wqe_wr_id),
1618 GFP_KERNEL); 1618 GFP_KERNEL);
1619 if (!qp->wqe_wr_id) { 1619 if (!qp->wqe_wr_id) {
1620 DP_ERR(dev, "create qp: failed SQ shadow memory allocation\n"); 1620 DP_ERR(dev, "create qp: failed SQ shadow memory allocation\n");
@@ -1632,7 +1632,7 @@ static int qedr_create_kernel_qp(struct qedr_dev *dev,
1632 qp->rq.max_wr = (u16) max_t(u32, attrs->cap.max_recv_wr, 1); 1632 qp->rq.max_wr = (u16) max_t(u32, attrs->cap.max_recv_wr, 1);
1633 1633
1634 /* Allocate driver internal RQ array */ 1634 /* Allocate driver internal RQ array */
1635 qp->rqe_wr_id = kzalloc(qp->rq.max_wr * sizeof(*qp->rqe_wr_id), 1635 qp->rqe_wr_id = kcalloc(qp->rq.max_wr, sizeof(*qp->rqe_wr_id),
1636 GFP_KERNEL); 1636 GFP_KERNEL);
1637 if (!qp->rqe_wr_id) { 1637 if (!qp->rqe_wr_id) {
1638 DP_ERR(dev, 1638 DP_ERR(dev,
diff --git a/drivers/infiniband/hw/qib/qib_iba6120.c b/drivers/infiniband/hw/qib/qib_iba6120.c
index 8a15e5c7dd91..fb1ff59f40bd 100644
--- a/drivers/infiniband/hw/qib/qib_iba6120.c
+++ b/drivers/infiniband/hw/qib/qib_iba6120.c
@@ -2496,15 +2496,16 @@ static void init_6120_cntrnames(struct qib_devdata *dd)
2496 dd->cspec->cntrnamelen = sizeof(cntr6120names) - 1; 2496 dd->cspec->cntrnamelen = sizeof(cntr6120names) - 1;
2497 else 2497 else
2498 dd->cspec->cntrnamelen = 1 + s - cntr6120names; 2498 dd->cspec->cntrnamelen = 1 + s - cntr6120names;
2499 dd->cspec->cntrs = kmalloc(dd->cspec->ncntrs 2499 dd->cspec->cntrs = kmalloc_array(dd->cspec->ncntrs, sizeof(u64),
2500 * sizeof(u64), GFP_KERNEL); 2500 GFP_KERNEL);
2501 2501
2502 for (i = 0, s = (char *)portcntr6120names; s; i++) 2502 for (i = 0, s = (char *)portcntr6120names; s; i++)
2503 s = strchr(s + 1, '\n'); 2503 s = strchr(s + 1, '\n');
2504 dd->cspec->nportcntrs = i - 1; 2504 dd->cspec->nportcntrs = i - 1;
2505 dd->cspec->portcntrnamelen = sizeof(portcntr6120names) - 1; 2505 dd->cspec->portcntrnamelen = sizeof(portcntr6120names) - 1;
2506 dd->cspec->portcntrs = kmalloc(dd->cspec->nportcntrs 2506 dd->cspec->portcntrs = kmalloc_array(dd->cspec->nportcntrs,
2507 * sizeof(u64), GFP_KERNEL); 2507 sizeof(u64),
2508 GFP_KERNEL);
2508} 2509}
2509 2510
2510static u32 qib_read_6120cntrs(struct qib_devdata *dd, loff_t pos, char **namep, 2511static u32 qib_read_6120cntrs(struct qib_devdata *dd, loff_t pos, char **namep,
diff --git a/drivers/infiniband/hw/qib/qib_iba7220.c b/drivers/infiniband/hw/qib/qib_iba7220.c
index bdff2326731e..163a57a88742 100644
--- a/drivers/infiniband/hw/qib/qib_iba7220.c
+++ b/drivers/infiniband/hw/qib/qib_iba7220.c
@@ -3147,15 +3147,16 @@ static void init_7220_cntrnames(struct qib_devdata *dd)
3147 dd->cspec->cntrnamelen = sizeof(cntr7220names) - 1; 3147 dd->cspec->cntrnamelen = sizeof(cntr7220names) - 1;
3148 else 3148 else
3149 dd->cspec->cntrnamelen = 1 + s - cntr7220names; 3149 dd->cspec->cntrnamelen = 1 + s - cntr7220names;
3150 dd->cspec->cntrs = kmalloc(dd->cspec->ncntrs 3150 dd->cspec->cntrs = kmalloc_array(dd->cspec->ncntrs, sizeof(u64),
3151 * sizeof(u64), GFP_KERNEL); 3151 GFP_KERNEL);
3152 3152
3153 for (i = 0, s = (char *)portcntr7220names; s; i++) 3153 for (i = 0, s = (char *)portcntr7220names; s; i++)
3154 s = strchr(s + 1, '\n'); 3154 s = strchr(s + 1, '\n');
3155 dd->cspec->nportcntrs = i - 1; 3155 dd->cspec->nportcntrs = i - 1;
3156 dd->cspec->portcntrnamelen = sizeof(portcntr7220names) - 1; 3156 dd->cspec->portcntrnamelen = sizeof(portcntr7220names) - 1;
3157 dd->cspec->portcntrs = kmalloc(dd->cspec->nportcntrs 3157 dd->cspec->portcntrs = kmalloc_array(dd->cspec->nportcntrs,
3158 * sizeof(u64), GFP_KERNEL); 3158 sizeof(u64),
3159 GFP_KERNEL);
3159} 3160}
3160 3161
3161static u32 qib_read_7220cntrs(struct qib_devdata *dd, loff_t pos, char **namep, 3162static u32 qib_read_7220cntrs(struct qib_devdata *dd, loff_t pos, char **namep,
diff --git a/drivers/infiniband/hw/qib/qib_iba7322.c b/drivers/infiniband/hw/qib/qib_iba7322.c
index 8414ae44a518..bf5e222eed8e 100644
--- a/drivers/infiniband/hw/qib/qib_iba7322.c
+++ b/drivers/infiniband/hw/qib/qib_iba7322.c
@@ -3648,8 +3648,9 @@ static int qib_do_7322_reset(struct qib_devdata *dd)
3648 3648
3649 if (msix_entries) { 3649 if (msix_entries) {
3650 /* can be up to 512 bytes, too big for stack */ 3650 /* can be up to 512 bytes, too big for stack */
3651 msix_vecsave = kmalloc(2 * dd->cspec->num_msix_entries * 3651 msix_vecsave = kmalloc_array(2 * dd->cspec->num_msix_entries,
3652 sizeof(u64), GFP_KERNEL); 3652 sizeof(u64),
3653 GFP_KERNEL);
3653 } 3654 }
3654 3655
3655 /* 3656 /*
@@ -5009,16 +5010,17 @@ static void init_7322_cntrnames(struct qib_devdata *dd)
5009 dd->cspec->cntrnamelen = sizeof(cntr7322names) - 1; 5010 dd->cspec->cntrnamelen = sizeof(cntr7322names) - 1;
5010 else 5011 else
5011 dd->cspec->cntrnamelen = 1 + s - cntr7322names; 5012 dd->cspec->cntrnamelen = 1 + s - cntr7322names;
5012 dd->cspec->cntrs = kmalloc(dd->cspec->ncntrs 5013 dd->cspec->cntrs = kmalloc_array(dd->cspec->ncntrs, sizeof(u64),
5013 * sizeof(u64), GFP_KERNEL); 5014 GFP_KERNEL);
5014 5015
5015 for (i = 0, s = (char *)portcntr7322names; s; i++) 5016 for (i = 0, s = (char *)portcntr7322names; s; i++)
5016 s = strchr(s + 1, '\n'); 5017 s = strchr(s + 1, '\n');
5017 dd->cspec->nportcntrs = i - 1; 5018 dd->cspec->nportcntrs = i - 1;
5018 dd->cspec->portcntrnamelen = sizeof(portcntr7322names) - 1; 5019 dd->cspec->portcntrnamelen = sizeof(portcntr7322names) - 1;
5019 for (i = 0; i < dd->num_pports; ++i) { 5020 for (i = 0; i < dd->num_pports; ++i) {
5020 dd->pport[i].cpspec->portcntrs = kmalloc(dd->cspec->nportcntrs 5021 dd->pport[i].cpspec->portcntrs =
5021 * sizeof(u64), GFP_KERNEL); 5022 kmalloc_array(dd->cspec->nportcntrs, sizeof(u64),
5023 GFP_KERNEL);
5022 } 5024 }
5023} 5025}
5024 5026
@@ -6412,12 +6414,15 @@ static int qib_init_7322_variables(struct qib_devdata *dd)
6412 sbufcnt = dd->piobcnt2k + dd->piobcnt4k + 6414 sbufcnt = dd->piobcnt2k + dd->piobcnt4k +
6413 NUM_VL15_BUFS + BITS_PER_LONG - 1; 6415 NUM_VL15_BUFS + BITS_PER_LONG - 1;
6414 sbufcnt /= BITS_PER_LONG; 6416 sbufcnt /= BITS_PER_LONG;
6415 dd->cspec->sendchkenable = kmalloc(sbufcnt * 6417 dd->cspec->sendchkenable =
6416 sizeof(*dd->cspec->sendchkenable), GFP_KERNEL); 6418 kmalloc_array(sbufcnt, sizeof(*dd->cspec->sendchkenable),
6417 dd->cspec->sendgrhchk = kmalloc(sbufcnt * 6419 GFP_KERNEL);
6418 sizeof(*dd->cspec->sendgrhchk), GFP_KERNEL); 6420 dd->cspec->sendgrhchk =
6419 dd->cspec->sendibchk = kmalloc(sbufcnt * 6421 kmalloc_array(sbufcnt, sizeof(*dd->cspec->sendgrhchk),
6420 sizeof(*dd->cspec->sendibchk), GFP_KERNEL); 6422 GFP_KERNEL);
6423 dd->cspec->sendibchk =
6424 kmalloc_array(sbufcnt, sizeof(*dd->cspec->sendibchk),
6425 GFP_KERNEL);
6421 if (!dd->cspec->sendchkenable || !dd->cspec->sendgrhchk || 6426 if (!dd->cspec->sendchkenable || !dd->cspec->sendgrhchk ||
6422 !dd->cspec->sendibchk) { 6427 !dd->cspec->sendibchk) {
6423 ret = -ENOMEM; 6428 ret = -ENOMEM;
@@ -7290,8 +7295,9 @@ struct qib_devdata *qib_init_iba7322_funcs(struct pci_dev *pdev,
7290 actual_cnt -= dd->num_pports; 7295 actual_cnt -= dd->num_pports;
7291 7296
7292 tabsize = actual_cnt; 7297 tabsize = actual_cnt;
7293 dd->cspec->msix_entries = kzalloc(tabsize * 7298 dd->cspec->msix_entries = kcalloc(tabsize,
7294 sizeof(struct qib_msix_entry), GFP_KERNEL); 7299 sizeof(struct qib_msix_entry),
7300 GFP_KERNEL);
7295 if (!dd->cspec->msix_entries) 7301 if (!dd->cspec->msix_entries)
7296 tabsize = 0; 7302 tabsize = 0;
7297 7303
diff --git a/drivers/infiniband/hw/qib/qib_init.c b/drivers/infiniband/hw/qib/qib_init.c
index 015520289735..d7cdc77d6306 100644
--- a/drivers/infiniband/hw/qib/qib_init.c
+++ b/drivers/infiniband/hw/qib/qib_init.c
@@ -369,11 +369,13 @@ static void init_shadow_tids(struct qib_devdata *dd)
369 struct page **pages; 369 struct page **pages;
370 dma_addr_t *addrs; 370 dma_addr_t *addrs;
371 371
372 pages = vzalloc(dd->cfgctxts * dd->rcvtidcnt * sizeof(struct page *)); 372 pages = vzalloc(array_size(sizeof(struct page *),
373 dd->cfgctxts * dd->rcvtidcnt));
373 if (!pages) 374 if (!pages)
374 goto bail; 375 goto bail;
375 376
376 addrs = vzalloc(dd->cfgctxts * dd->rcvtidcnt * sizeof(dma_addr_t)); 377 addrs = vzalloc(array_size(sizeof(dma_addr_t),
378 dd->cfgctxts * dd->rcvtidcnt));
377 if (!addrs) 379 if (!addrs)
378 goto bail_free; 380 goto bail_free;
379 381
@@ -1134,8 +1136,8 @@ struct qib_devdata *qib_alloc_devdata(struct pci_dev *pdev, size_t extra)
1134 if (!qib_cpulist_count) { 1136 if (!qib_cpulist_count) {
1135 u32 count = num_online_cpus(); 1137 u32 count = num_online_cpus();
1136 1138
1137 qib_cpulist = kzalloc(BITS_TO_LONGS(count) * 1139 qib_cpulist = kcalloc(BITS_TO_LONGS(count), sizeof(long),
1138 sizeof(long), GFP_KERNEL); 1140 GFP_KERNEL);
1139 if (qib_cpulist) 1141 if (qib_cpulist)
1140 qib_cpulist_count = count; 1142 qib_cpulist_count = count;
1141 } 1143 }
@@ -1673,8 +1675,8 @@ int qib_setup_eagerbufs(struct qib_ctxtdata *rcd)
1673 size = rcd->rcvegrbuf_size; 1675 size = rcd->rcvegrbuf_size;
1674 if (!rcd->rcvegrbuf) { 1676 if (!rcd->rcvegrbuf) {
1675 rcd->rcvegrbuf = 1677 rcd->rcvegrbuf =
1676 kzalloc_node(chunk * sizeof(rcd->rcvegrbuf[0]), 1678 kcalloc_node(chunk, sizeof(rcd->rcvegrbuf[0]),
1677 GFP_KERNEL, rcd->node_id); 1679 GFP_KERNEL, rcd->node_id);
1678 if (!rcd->rcvegrbuf) 1680 if (!rcd->rcvegrbuf)
1679 goto bail; 1681 goto bail;
1680 } 1682 }
diff --git a/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c b/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c
index 912d8ef04352..bf5136533d49 100644
--- a/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c
+++ b/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c
@@ -543,7 +543,7 @@ alloc_res_chunk_list(struct usnic_vnic *vnic,
543 /* Do Nothing */ 543 /* Do Nothing */
544 } 544 }
545 545
546 res_chunk_list = kzalloc(sizeof(*res_chunk_list)*(res_lst_sz+1), 546 res_chunk_list = kcalloc(res_lst_sz + 1, sizeof(*res_chunk_list),
547 GFP_ATOMIC); 547 GFP_ATOMIC);
548 if (!res_chunk_list) 548 if (!res_chunk_list)
549 return ERR_PTR(-ENOMEM); 549 return ERR_PTR(-ENOMEM);
diff --git a/drivers/infiniband/hw/usnic/usnic_vnic.c b/drivers/infiniband/hw/usnic/usnic_vnic.c
index e7b0030254da..ebe08f348453 100644
--- a/drivers/infiniband/hw/usnic/usnic_vnic.c
+++ b/drivers/infiniband/hw/usnic/usnic_vnic.c
@@ -312,7 +312,7 @@ static int usnic_vnic_alloc_res_chunk(struct usnic_vnic *vnic,
312 } 312 }
313 313
314 chunk->cnt = chunk->free_cnt = cnt; 314 chunk->cnt = chunk->free_cnt = cnt;
315 chunk->res = kzalloc(sizeof(*(chunk->res))*cnt, GFP_KERNEL); 315 chunk->res = kcalloc(cnt, sizeof(*(chunk->res)), GFP_KERNEL);
316 if (!chunk->res) 316 if (!chunk->res)
317 return -ENOMEM; 317 return -ENOMEM;
318 318
diff --git a/drivers/infiniband/sw/rdmavt/qp.c b/drivers/infiniband/sw/rdmavt/qp.c
index 40046135c509..41183bd665ca 100644
--- a/drivers/infiniband/sw/rdmavt/qp.c
+++ b/drivers/infiniband/sw/rdmavt/qp.c
@@ -813,7 +813,7 @@ struct ib_qp *rvt_create_qp(struct ib_pd *ibpd,
813 sz = sizeof(struct rvt_sge) * 813 sz = sizeof(struct rvt_sge) *
814 init_attr->cap.max_send_sge + 814 init_attr->cap.max_send_sge +
815 sizeof(struct rvt_swqe); 815 sizeof(struct rvt_swqe);
816 swq = vzalloc_node(sqsize * sz, rdi->dparms.node); 816 swq = vzalloc_node(array_size(sz, sqsize), rdi->dparms.node);
817 if (!swq) 817 if (!swq)
818 return ERR_PTR(-ENOMEM); 818 return ERR_PTR(-ENOMEM);
819 819
@@ -836,11 +836,10 @@ struct ib_qp *rvt_create_qp(struct ib_pd *ibpd,
836 RCU_INIT_POINTER(qp->next, NULL); 836 RCU_INIT_POINTER(qp->next, NULL);
837 if (init_attr->qp_type == IB_QPT_RC) { 837 if (init_attr->qp_type == IB_QPT_RC) {
838 qp->s_ack_queue = 838 qp->s_ack_queue =
839 kzalloc_node( 839 kcalloc_node(rvt_max_atomic(rdi),
840 sizeof(*qp->s_ack_queue) * 840 sizeof(*qp->s_ack_queue),
841 rvt_max_atomic(rdi), 841 GFP_KERNEL,
842 GFP_KERNEL, 842 rdi->dparms.node);
843 rdi->dparms.node);
844 if (!qp->s_ack_queue) 843 if (!qp->s_ack_queue)
845 goto bail_qp; 844 goto bail_qp;
846 } 845 }
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_cm.c b/drivers/infiniband/ulp/ipoib/ipoib_cm.c
index 962fbcb57dc7..6535d9beb24d 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_cm.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_cm.c
@@ -358,7 +358,8 @@ static int ipoib_cm_nonsrq_init_rx(struct net_device *dev, struct ib_cm_id *cm_i
358 int ret; 358 int ret;
359 int i; 359 int i;
360 360
361 rx->rx_ring = vzalloc(ipoib_recvq_size * sizeof *rx->rx_ring); 361 rx->rx_ring = vzalloc(array_size(ipoib_recvq_size,
362 sizeof(*rx->rx_ring)));
362 if (!rx->rx_ring) 363 if (!rx->rx_ring)
363 return -ENOMEM; 364 return -ENOMEM;
364 365
@@ -1145,7 +1146,7 @@ static int ipoib_cm_tx_init(struct ipoib_cm_tx *p, u32 qpn,
1145 int ret; 1146 int ret;
1146 1147
1147 noio_flag = memalloc_noio_save(); 1148 noio_flag = memalloc_noio_save();
1148 p->tx_ring = vzalloc(ipoib_sendq_size * sizeof(*p->tx_ring)); 1149 p->tx_ring = vzalloc(array_size(ipoib_sendq_size, sizeof(*p->tx_ring)));
1149 if (!p->tx_ring) { 1150 if (!p->tx_ring) {
1150 memalloc_noio_restore(noio_flag); 1151 memalloc_noio_restore(noio_flag);
1151 ret = -ENOMEM; 1152 ret = -ENOMEM;
@@ -1570,7 +1571,8 @@ static void ipoib_cm_create_srq(struct net_device *dev, int max_sge)
1570 return; 1571 return;
1571 } 1572 }
1572 1573
1573 priv->cm.srq_ring = vzalloc(ipoib_recvq_size * sizeof *priv->cm.srq_ring); 1574 priv->cm.srq_ring = vzalloc(array_size(ipoib_recvq_size,
1575 sizeof(*priv->cm.srq_ring)));
1574 if (!priv->cm.srq_ring) { 1576 if (!priv->cm.srq_ring) {
1575 ib_destroy_srq(priv->cm.srq); 1577 ib_destroy_srq(priv->cm.srq);
1576 priv->cm.srq = NULL; 1578 priv->cm.srq = NULL;
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c
index 2ce40a7ff604..26cde95bc0f3 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_main.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c
@@ -1526,7 +1526,7 @@ static int ipoib_neigh_hash_init(struct ipoib_dev_priv *priv)
1526 return -ENOMEM; 1526 return -ENOMEM;
1527 set_bit(IPOIB_STOP_NEIGH_GC, &priv->flags); 1527 set_bit(IPOIB_STOP_NEIGH_GC, &priv->flags);
1528 size = roundup_pow_of_two(arp_tbl.gc_thresh3); 1528 size = roundup_pow_of_two(arp_tbl.gc_thresh3);
1529 buckets = kzalloc(size * sizeof(*buckets), GFP_KERNEL); 1529 buckets = kcalloc(size, sizeof(*buckets), GFP_KERNEL);
1530 if (!buckets) { 1530 if (!buckets) {
1531 kfree(htbl); 1531 kfree(htbl);
1532 return -ENOMEM; 1532 return -ENOMEM;
@@ -1704,12 +1704,14 @@ static int ipoib_dev_init_default(struct net_device *dev)
1704 ipoib_napi_add(dev); 1704 ipoib_napi_add(dev);
1705 1705
1706 /* Allocate RX/TX "rings" to hold queued skbs */ 1706 /* Allocate RX/TX "rings" to hold queued skbs */
1707 priv->rx_ring = kzalloc(ipoib_recvq_size * sizeof *priv->rx_ring, 1707 priv->rx_ring = kcalloc(ipoib_recvq_size,
1708 GFP_KERNEL); 1708 sizeof(*priv->rx_ring),
1709 GFP_KERNEL);
1709 if (!priv->rx_ring) 1710 if (!priv->rx_ring)
1710 goto out; 1711 goto out;
1711 1712
1712 priv->tx_ring = vzalloc(ipoib_sendq_size * sizeof *priv->tx_ring); 1713 priv->tx_ring = vzalloc(array_size(ipoib_sendq_size,
1714 sizeof(*priv->tx_ring)));
1713 if (!priv->tx_ring) { 1715 if (!priv->tx_ring) {
1714 pr_warn("%s: failed to allocate TX ring (%d entries)\n", 1716 pr_warn("%s: failed to allocate TX ring (%d entries)\n",
1715 priv->ca->name, ipoib_sendq_size); 1717 priv->ca->name, ipoib_sendq_size);
diff --git a/drivers/infiniband/ulp/iser/iser_initiator.c b/drivers/infiniband/ulp/iser/iser_initiator.c
index ca858d6bd37a..2f6388596f88 100644
--- a/drivers/infiniband/ulp/iser/iser_initiator.c
+++ b/drivers/infiniband/ulp/iser/iser_initiator.c
@@ -258,8 +258,9 @@ int iser_alloc_rx_descriptors(struct iser_conn *iser_conn,
258 goto alloc_login_buf_fail; 258 goto alloc_login_buf_fail;
259 259
260 iser_conn->num_rx_descs = session->cmds_max; 260 iser_conn->num_rx_descs = session->cmds_max;
261 iser_conn->rx_descs = kmalloc(iser_conn->num_rx_descs * 261 iser_conn->rx_descs = kmalloc_array(iser_conn->num_rx_descs,
262 sizeof(struct iser_rx_desc), GFP_KERNEL); 262 sizeof(struct iser_rx_desc),
263 GFP_KERNEL);
263 if (!iser_conn->rx_descs) 264 if (!iser_conn->rx_descs)
264 goto rx_desc_alloc_fail; 265 goto rx_desc_alloc_fail;
265 266
diff --git a/drivers/infiniband/ulp/isert/ib_isert.c b/drivers/infiniband/ulp/isert/ib_isert.c
index f2f9318e1f49..cccbcf0eb035 100644
--- a/drivers/infiniband/ulp/isert/ib_isert.c
+++ b/drivers/infiniband/ulp/isert/ib_isert.c
@@ -181,8 +181,9 @@ isert_alloc_rx_descriptors(struct isert_conn *isert_conn)
181 u64 dma_addr; 181 u64 dma_addr;
182 int i, j; 182 int i, j;
183 183
184 isert_conn->rx_descs = kzalloc(ISERT_QP_MAX_RECV_DTOS * 184 isert_conn->rx_descs = kcalloc(ISERT_QP_MAX_RECV_DTOS,
185 sizeof(struct iser_rx_desc), GFP_KERNEL); 185 sizeof(struct iser_rx_desc),
186 GFP_KERNEL);
186 if (!isert_conn->rx_descs) 187 if (!isert_conn->rx_descs)
187 return -ENOMEM; 188 return -ENOMEM;
188 189
diff --git a/drivers/infiniband/ulp/srp/ib_srp.c b/drivers/infiniband/ulp/srp/ib_srp.c
index c35d2cd37d70..9786b24b956f 100644
--- a/drivers/infiniband/ulp/srp/ib_srp.c
+++ b/drivers/infiniband/ulp/srp/ib_srp.c
@@ -1035,16 +1035,17 @@ static int srp_alloc_req_data(struct srp_rdma_ch *ch)
1035 1035
1036 for (i = 0; i < target->req_ring_size; ++i) { 1036 for (i = 0; i < target->req_ring_size; ++i) {
1037 req = &ch->req_ring[i]; 1037 req = &ch->req_ring[i];
1038 mr_list = kmalloc(target->mr_per_cmd * sizeof(void *), 1038 mr_list = kmalloc_array(target->mr_per_cmd, sizeof(void *),
1039 GFP_KERNEL); 1039 GFP_KERNEL);
1040 if (!mr_list) 1040 if (!mr_list)
1041 goto out; 1041 goto out;
1042 if (srp_dev->use_fast_reg) { 1042 if (srp_dev->use_fast_reg) {
1043 req->fr_list = mr_list; 1043 req->fr_list = mr_list;
1044 } else { 1044 } else {
1045 req->fmr_list = mr_list; 1045 req->fmr_list = mr_list;
1046 req->map_page = kmalloc(srp_dev->max_pages_per_mr * 1046 req->map_page = kmalloc_array(srp_dev->max_pages_per_mr,
1047 sizeof(void *), GFP_KERNEL); 1047 sizeof(void *),
1048 GFP_KERNEL);
1048 if (!req->map_page) 1049 if (!req->map_page)
1049 goto out; 1050 goto out;
1050 } 1051 }
diff --git a/drivers/infiniband/ulp/srpt/ib_srpt.c b/drivers/infiniband/ulp/srpt/ib_srpt.c
index dfec0e1fac29..3081c629a7f7 100644
--- a/drivers/infiniband/ulp/srpt/ib_srpt.c
+++ b/drivers/infiniband/ulp/srpt/ib_srpt.c
@@ -720,7 +720,7 @@ static struct srpt_ioctx **srpt_alloc_ioctx_ring(struct srpt_device *sdev,
720 WARN_ON(ioctx_size != sizeof(struct srpt_recv_ioctx) 720 WARN_ON(ioctx_size != sizeof(struct srpt_recv_ioctx)
721 && ioctx_size != sizeof(struct srpt_send_ioctx)); 721 && ioctx_size != sizeof(struct srpt_send_ioctx));
722 722
723 ring = kmalloc(ring_size * sizeof(ring[0]), GFP_KERNEL); 723 ring = kmalloc_array(ring_size, sizeof(ring[0]), GFP_KERNEL);
724 if (!ring) 724 if (!ring)
725 goto out; 725 goto out;
726 for (i = 0; i < ring_size; ++i) { 726 for (i = 0; i < ring_size; ++i) {
diff --git a/drivers/input/joystick/joydump.c b/drivers/input/joystick/joydump.c
index d1c6e4846a4a..7f4dff9a566f 100644
--- a/drivers/input/joystick/joydump.c
+++ b/drivers/input/joystick/joydump.c
@@ -80,7 +80,7 @@ static int joydump_connect(struct gameport *gameport, struct gameport_driver *dr
80 80
81 timeout = gameport_time(gameport, 10000); /* 10 ms */ 81 timeout = gameport_time(gameport, 10000); /* 10 ms */
82 82
83 buf = kmalloc(BUF_SIZE * sizeof(struct joydump), GFP_KERNEL); 83 buf = kmalloc_array(BUF_SIZE, sizeof(struct joydump), GFP_KERNEL);
84 if (!buf) { 84 if (!buf) {
85 printk(KERN_INFO "joydump: no memory for testing\n"); 85 printk(KERN_INFO "joydump: no memory for testing\n");
86 goto jd_end; 86 goto jd_end;
diff --git a/drivers/input/keyboard/clps711x-keypad.c b/drivers/input/keyboard/clps711x-keypad.c
index 997e3e97f573..e319f745771a 100644
--- a/drivers/input/keyboard/clps711x-keypad.c
+++ b/drivers/input/keyboard/clps711x-keypad.c
@@ -109,8 +109,8 @@ static int clps711x_keypad_probe(struct platform_device *pdev)
109 if (priv->row_count < 1) 109 if (priv->row_count < 1)
110 return -EINVAL; 110 return -EINVAL;
111 111
112 priv->gpio_data = devm_kzalloc(dev, 112 priv->gpio_data = devm_kcalloc(dev,
113 sizeof(*priv->gpio_data) * priv->row_count, 113 priv->row_count, sizeof(*priv->gpio_data),
114 GFP_KERNEL); 114 GFP_KERNEL);
115 if (!priv->gpio_data) 115 if (!priv->gpio_data)
116 return -ENOMEM; 116 return -ENOMEM;
diff --git a/drivers/input/keyboard/matrix_keypad.c b/drivers/input/keyboard/matrix_keypad.c
index 41614c185918..f51ae09596ef 100644
--- a/drivers/input/keyboard/matrix_keypad.c
+++ b/drivers/input/keyboard/matrix_keypad.c
@@ -443,9 +443,9 @@ matrix_keypad_parse_dt(struct device *dev)
443 of_property_read_u32(np, "col-scan-delay-us", 443 of_property_read_u32(np, "col-scan-delay-us",
444 &pdata->col_scan_delay_us); 444 &pdata->col_scan_delay_us);
445 445
446 gpios = devm_kzalloc(dev, 446 gpios = devm_kcalloc(dev,
447 sizeof(unsigned int) * 447 pdata->num_row_gpios + pdata->num_col_gpios,
448 (pdata->num_row_gpios + pdata->num_col_gpios), 448 sizeof(unsigned int),
449 GFP_KERNEL); 449 GFP_KERNEL);
450 if (!gpios) { 450 if (!gpios) {
451 dev_err(dev, "could not allocate memory for gpios\n"); 451 dev_err(dev, "could not allocate memory for gpios\n");
diff --git a/drivers/input/keyboard/omap4-keypad.c b/drivers/input/keyboard/omap4-keypad.c
index 940d38b08e6b..46406345742b 100644
--- a/drivers/input/keyboard/omap4-keypad.c
+++ b/drivers/input/keyboard/omap4-keypad.c
@@ -337,7 +337,8 @@ static int omap4_keypad_probe(struct platform_device *pdev)
337 337
338 keypad_data->row_shift = get_count_order(keypad_data->cols); 338 keypad_data->row_shift = get_count_order(keypad_data->cols);
339 max_keys = keypad_data->rows << keypad_data->row_shift; 339 max_keys = keypad_data->rows << keypad_data->row_shift;
340 keypad_data->keymap = kzalloc(max_keys * sizeof(keypad_data->keymap[0]), 340 keypad_data->keymap = kcalloc(max_keys,
341 sizeof(keypad_data->keymap[0]),
341 GFP_KERNEL); 342 GFP_KERNEL);
342 if (!keypad_data->keymap) { 343 if (!keypad_data->keymap) {
343 dev_err(&pdev->dev, "Not enough memory for keymap\n"); 344 dev_err(&pdev->dev, "Not enough memory for keymap\n");
diff --git a/drivers/input/keyboard/samsung-keypad.c b/drivers/input/keyboard/samsung-keypad.c
index 316414465c77..1fe1aa2adf85 100644
--- a/drivers/input/keyboard/samsung-keypad.c
+++ b/drivers/input/keyboard/samsung-keypad.c
@@ -281,7 +281,7 @@ samsung_keypad_parse_dt(struct device *dev)
281 281
282 key_count = of_get_child_count(np); 282 key_count = of_get_child_count(np);
283 keymap_data->keymap_size = key_count; 283 keymap_data->keymap_size = key_count;
284 keymap = devm_kzalloc(dev, sizeof(uint32_t) * key_count, GFP_KERNEL); 284 keymap = devm_kcalloc(dev, key_count, sizeof(uint32_t), GFP_KERNEL);
285 if (!keymap) { 285 if (!keymap) {
286 dev_err(dev, "could not allocate memory for keymap\n"); 286 dev_err(dev, "could not allocate memory for keymap\n");
287 return ERR_PTR(-ENOMEM); 287 return ERR_PTR(-ENOMEM);
diff --git a/drivers/input/matrix-keymap.c b/drivers/input/matrix-keymap.c
index 8ccefc15c7a4..8b3a5758451e 100644
--- a/drivers/input/matrix-keymap.c
+++ b/drivers/input/matrix-keymap.c
@@ -170,8 +170,8 @@ int matrix_keypad_build_keymap(const struct matrix_keymap_data *keymap_data,
170 return -EINVAL; 170 return -EINVAL;
171 171
172 if (!keymap) { 172 if (!keymap) {
173 keymap = devm_kzalloc(input_dev->dev.parent, 173 keymap = devm_kcalloc(input_dev->dev.parent,
174 max_keys * sizeof(*keymap), 174 max_keys, sizeof(*keymap),
175 GFP_KERNEL); 175 GFP_KERNEL);
176 if (!keymap) { 176 if (!keymap) {
177 dev_err(input_dev->dev.parent, 177 dev_err(input_dev->dev.parent,
diff --git a/drivers/input/misc/rotary_encoder.c b/drivers/input/misc/rotary_encoder.c
index 1588aecafff7..6d304381fc30 100644
--- a/drivers/input/misc/rotary_encoder.c
+++ b/drivers/input/misc/rotary_encoder.c
@@ -283,8 +283,8 @@ static int rotary_encoder_probe(struct platform_device *pdev)
283 } 283 }
284 284
285 encoder->irq = 285 encoder->irq =
286 devm_kzalloc(dev, 286 devm_kcalloc(dev,
287 sizeof(*encoder->irq) * encoder->gpios->ndescs, 287 encoder->gpios->ndescs, sizeof(*encoder->irq),
288 GFP_KERNEL); 288 GFP_KERNEL);
289 if (!encoder->irq) 289 if (!encoder->irq)
290 return -ENOMEM; 290 return -ENOMEM;
diff --git a/drivers/input/rmi4/rmi_driver.c b/drivers/input/rmi4/rmi_driver.c
index f5954981e9ee..7d29053dfb0f 100644
--- a/drivers/input/rmi4/rmi_driver.c
+++ b/drivers/input/rmi4/rmi_driver.c
@@ -636,9 +636,10 @@ int rmi_read_register_desc(struct rmi_device *d, u16 addr,
636 rdesc->num_registers = bitmap_weight(rdesc->presense_map, 636 rdesc->num_registers = bitmap_weight(rdesc->presense_map,
637 RMI_REG_DESC_PRESENSE_BITS); 637 RMI_REG_DESC_PRESENSE_BITS);
638 638
639 rdesc->registers = devm_kzalloc(&d->dev, rdesc->num_registers * 639 rdesc->registers = devm_kcalloc(&d->dev,
640 sizeof(struct rmi_register_desc_item), 640 rdesc->num_registers,
641 GFP_KERNEL); 641 sizeof(struct rmi_register_desc_item),
642 GFP_KERNEL);
642 if (!rdesc->registers) 643 if (!rdesc->registers)
643 return -ENOMEM; 644 return -ENOMEM;
644 645
@@ -1061,7 +1062,7 @@ int rmi_probe_interrupts(struct rmi_driver_data *data)
1061 data->num_of_irq_regs = (data->irq_count + 7) / 8; 1062 data->num_of_irq_regs = (data->irq_count + 7) / 8;
1062 1063
1063 size = BITS_TO_LONGS(data->irq_count) * sizeof(unsigned long); 1064 size = BITS_TO_LONGS(data->irq_count) * sizeof(unsigned long);
1064 data->irq_memory = devm_kzalloc(dev, size * 4, GFP_KERNEL); 1065 data->irq_memory = devm_kcalloc(dev, size, 4, GFP_KERNEL);
1065 if (!data->irq_memory) { 1066 if (!data->irq_memory) {
1066 dev_err(dev, "Failed to allocate memory for irq masks.\n"); 1067 dev_err(dev, "Failed to allocate memory for irq masks.\n");
1067 return -ENOMEM; 1068 return -ENOMEM;
diff --git a/drivers/input/rmi4/rmi_f11.c b/drivers/input/rmi4/rmi_f11.c
index bc5e37f30ac1..12a233251793 100644
--- a/drivers/input/rmi4/rmi_f11.c
+++ b/drivers/input/rmi4/rmi_f11.c
@@ -1190,14 +1190,15 @@ static int rmi_f11_initialize(struct rmi_function *fn)
1190 f11->sensor.attn_size += f11->sensor.nbr_fingers * 2; 1190 f11->sensor.attn_size += f11->sensor.nbr_fingers * 2;
1191 1191
1192 /* allocate the in-kernel tracking buffers */ 1192 /* allocate the in-kernel tracking buffers */
1193 sensor->tracking_pos = devm_kzalloc(&fn->dev, 1193 sensor->tracking_pos = devm_kcalloc(&fn->dev,
1194 sizeof(struct input_mt_pos) * sensor->nbr_fingers, 1194 sensor->nbr_fingers, sizeof(struct input_mt_pos),
1195 GFP_KERNEL);
1196 sensor->tracking_slots = devm_kcalloc(&fn->dev,
1197 sensor->nbr_fingers, sizeof(int), GFP_KERNEL);
1198 sensor->objs = devm_kcalloc(&fn->dev,
1199 sensor->nbr_fingers,
1200 sizeof(struct rmi_2d_sensor_abs_object),
1195 GFP_KERNEL); 1201 GFP_KERNEL);
1196 sensor->tracking_slots = devm_kzalloc(&fn->dev,
1197 sizeof(int) * sensor->nbr_fingers, GFP_KERNEL);
1198 sensor->objs = devm_kzalloc(&fn->dev,
1199 sizeof(struct rmi_2d_sensor_abs_object)
1200 * sensor->nbr_fingers, GFP_KERNEL);
1201 if (!sensor->tracking_pos || !sensor->tracking_slots || !sensor->objs) 1202 if (!sensor->tracking_pos || !sensor->tracking_slots || !sensor->objs)
1202 return -ENOMEM; 1203 return -ENOMEM;
1203 1204
diff --git a/drivers/input/rmi4/rmi_f12.c b/drivers/input/rmi4/rmi_f12.c
index 8b0db086d68a..a3d1aa88f2a9 100644
--- a/drivers/input/rmi4/rmi_f12.c
+++ b/drivers/input/rmi4/rmi_f12.c
@@ -502,14 +502,15 @@ static int rmi_f12_probe(struct rmi_function *fn)
502 } 502 }
503 503
504 /* allocate the in-kernel tracking buffers */ 504 /* allocate the in-kernel tracking buffers */
505 sensor->tracking_pos = devm_kzalloc(&fn->dev, 505 sensor->tracking_pos = devm_kcalloc(&fn->dev,
506 sizeof(struct input_mt_pos) * sensor->nbr_fingers, 506 sensor->nbr_fingers, sizeof(struct input_mt_pos),
507 GFP_KERNEL);
508 sensor->tracking_slots = devm_kcalloc(&fn->dev,
509 sensor->nbr_fingers, sizeof(int), GFP_KERNEL);
510 sensor->objs = devm_kcalloc(&fn->dev,
511 sensor->nbr_fingers,
512 sizeof(struct rmi_2d_sensor_abs_object),
507 GFP_KERNEL); 513 GFP_KERNEL);
508 sensor->tracking_slots = devm_kzalloc(&fn->dev,
509 sizeof(int) * sensor->nbr_fingers, GFP_KERNEL);
510 sensor->objs = devm_kzalloc(&fn->dev,
511 sizeof(struct rmi_2d_sensor_abs_object)
512 * sensor->nbr_fingers, GFP_KERNEL);
513 if (!sensor->tracking_pos || !sensor->tracking_slots || !sensor->objs) 514 if (!sensor->tracking_pos || !sensor->tracking_slots || !sensor->objs)
514 return -ENOMEM; 515 return -ENOMEM;
515 516
diff --git a/drivers/input/rmi4/rmi_f54.c b/drivers/input/rmi4/rmi_f54.c
index 5343f2c08f15..e8a59d164019 100644
--- a/drivers/input/rmi4/rmi_f54.c
+++ b/drivers/input/rmi4/rmi_f54.c
@@ -685,7 +685,7 @@ static int rmi_f54_probe(struct rmi_function *fn)
685 rx = f54->num_rx_electrodes; 685 rx = f54->num_rx_electrodes;
686 tx = f54->num_tx_electrodes; 686 tx = f54->num_tx_electrodes;
687 f54->report_data = devm_kzalloc(&fn->dev, 687 f54->report_data = devm_kzalloc(&fn->dev,
688 sizeof(u16) * tx * rx, 688 array3_size(tx, rx, sizeof(u16)),
689 GFP_KERNEL); 689 GFP_KERNEL);
690 if (f54->report_data == NULL) 690 if (f54->report_data == NULL)
691 return -ENOMEM; 691 return -ENOMEM;
diff --git a/drivers/input/rmi4/rmi_spi.c b/drivers/input/rmi4/rmi_spi.c
index 082defc329a8..33b8c6e7ac0a 100644
--- a/drivers/input/rmi4/rmi_spi.c
+++ b/drivers/input/rmi4/rmi_spi.c
@@ -69,7 +69,7 @@ static int rmi_spi_manage_pools(struct rmi_spi_xport *rmi_spi, int len)
69 buf_size = RMI_SPI_XFER_SIZE_LIMIT; 69 buf_size = RMI_SPI_XFER_SIZE_LIMIT;
70 70
71 tmp = rmi_spi->rx_buf; 71 tmp = rmi_spi->rx_buf;
72 buf = devm_kzalloc(&spi->dev, buf_size * 2, 72 buf = devm_kcalloc(&spi->dev, buf_size, 2,
73 GFP_KERNEL | GFP_DMA); 73 GFP_KERNEL | GFP_DMA);
74 if (!buf) 74 if (!buf)
75 return -ENOMEM; 75 return -ENOMEM;
@@ -96,9 +96,10 @@ static int rmi_spi_manage_pools(struct rmi_spi_xport *rmi_spi, int len)
96 * per byte delays. 96 * per byte delays.
97 */ 97 */
98 tmp = rmi_spi->rx_xfers; 98 tmp = rmi_spi->rx_xfers;
99 xfer_buf = devm_kzalloc(&spi->dev, 99 xfer_buf = devm_kcalloc(&spi->dev,
100 (rmi_spi->rx_xfer_count + rmi_spi->tx_xfer_count) 100 rmi_spi->rx_xfer_count + rmi_spi->tx_xfer_count,
101 * sizeof(struct spi_transfer), GFP_KERNEL); 101 sizeof(struct spi_transfer),
102 GFP_KERNEL);
102 if (!xfer_buf) 103 if (!xfer_buf)
103 return -ENOMEM; 104 return -ENOMEM;
104 105
diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c
index 69e7c60792a8..f7a96bcf94a6 100644
--- a/drivers/iommu/arm-smmu.c
+++ b/drivers/iommu/arm-smmu.c
@@ -2082,7 +2082,7 @@ static int arm_smmu_device_probe(struct platform_device *pdev)
2082 return -ENODEV; 2082 return -ENODEV;
2083 } 2083 }
2084 2084
2085 smmu->irqs = devm_kzalloc(dev, sizeof(*smmu->irqs) * num_irqs, 2085 smmu->irqs = devm_kcalloc(dev, num_irqs, sizeof(*smmu->irqs),
2086 GFP_KERNEL); 2086 GFP_KERNEL);
2087 if (!smmu->irqs) { 2087 if (!smmu->irqs) {
2088 dev_err(dev, "failed to allocate %d irqs\n", num_irqs); 2088 dev_err(dev, "failed to allocate %d irqs\n", num_irqs);
diff --git a/drivers/iommu/dmar.c b/drivers/iommu/dmar.c
index 4321f7704b23..75456b5aa825 100644
--- a/drivers/iommu/dmar.c
+++ b/drivers/iommu/dmar.c
@@ -1458,7 +1458,7 @@ int dmar_enable_qi(struct intel_iommu *iommu)
1458 1458
1459 qi->desc = page_address(desc_page); 1459 qi->desc = page_address(desc_page);
1460 1460
1461 qi->desc_status = kzalloc(QI_LENGTH * sizeof(int), GFP_ATOMIC); 1461 qi->desc_status = kcalloc(QI_LENGTH, sizeof(int), GFP_ATOMIC);
1462 if (!qi->desc_status) { 1462 if (!qi->desc_status) {
1463 free_page((unsigned long) qi->desc); 1463 free_page((unsigned long) qi->desc);
1464 kfree(qi); 1464 kfree(qi);
diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c
index 89e49a429c57..14e4b3722428 100644
--- a/drivers/iommu/intel-iommu.c
+++ b/drivers/iommu/intel-iommu.c
@@ -3189,7 +3189,7 @@ static int copy_translation_tables(struct intel_iommu *iommu)
3189 /* This is too big for the stack - allocate it from slab */ 3189 /* This is too big for the stack - allocate it from slab */
3190 ctxt_table_entries = ext ? 512 : 256; 3190 ctxt_table_entries = ext ? 512 : 256;
3191 ret = -ENOMEM; 3191 ret = -ENOMEM;
3192 ctxt_tbls = kzalloc(ctxt_table_entries * sizeof(void *), GFP_KERNEL); 3192 ctxt_tbls = kcalloc(ctxt_table_entries, sizeof(void *), GFP_KERNEL);
3193 if (!ctxt_tbls) 3193 if (!ctxt_tbls)
3194 goto out_unmap; 3194 goto out_unmap;
3195 3195
@@ -4032,7 +4032,7 @@ static int iommu_suspend(void)
4032 unsigned long flag; 4032 unsigned long flag;
4033 4033
4034 for_each_active_iommu(iommu, drhd) { 4034 for_each_active_iommu(iommu, drhd) {
4035 iommu->iommu_state = kzalloc(sizeof(u32) * MAX_SR_DMAR_REGS, 4035 iommu->iommu_state = kcalloc(MAX_SR_DMAR_REGS, sizeof(u32),
4036 GFP_ATOMIC); 4036 GFP_ATOMIC);
4037 if (!iommu->iommu_state) 4037 if (!iommu->iommu_state)
4038 goto nomem; 4038 goto nomem;
diff --git a/drivers/iommu/omap-iommu.c b/drivers/iommu/omap-iommu.c
index c33b7b104e72..af4a8e7fcd27 100644
--- a/drivers/iommu/omap-iommu.c
+++ b/drivers/iommu/omap-iommu.c
@@ -1455,7 +1455,7 @@ static int omap_iommu_add_device(struct device *dev)
1455 if (num_iommus < 0) 1455 if (num_iommus < 0)
1456 return 0; 1456 return 0;
1457 1457
1458 arch_data = kzalloc((num_iommus + 1) * sizeof(*arch_data), GFP_KERNEL); 1458 arch_data = kcalloc(num_iommus + 1, sizeof(*arch_data), GFP_KERNEL);
1459 if (!arch_data) 1459 if (!arch_data)
1460 return -ENOMEM; 1460 return -ENOMEM;
1461 1461
diff --git a/drivers/iommu/rockchip-iommu.c b/drivers/iommu/rockchip-iommu.c
index 0468acfa131f..054cd2c8e9c8 100644
--- a/drivers/iommu/rockchip-iommu.c
+++ b/drivers/iommu/rockchip-iommu.c
@@ -1135,7 +1135,7 @@ static int rk_iommu_probe(struct platform_device *pdev)
1135 iommu->dev = dev; 1135 iommu->dev = dev;
1136 iommu->num_mmu = 0; 1136 iommu->num_mmu = 0;
1137 1137
1138 iommu->bases = devm_kzalloc(dev, sizeof(*iommu->bases) * num_res, 1138 iommu->bases = devm_kcalloc(dev, num_res, sizeof(*iommu->bases),
1139 GFP_KERNEL); 1139 GFP_KERNEL);
1140 if (!iommu->bases) 1140 if (!iommu->bases)
1141 return -ENOMEM; 1141 return -ENOMEM;
diff --git a/drivers/iommu/tegra-gart.c b/drivers/iommu/tegra-gart.c
index 89ec24c6952c..a004f6da35f2 100644
--- a/drivers/iommu/tegra-gart.c
+++ b/drivers/iommu/tegra-gart.c
@@ -465,7 +465,7 @@ static int tegra_gart_probe(struct platform_device *pdev)
465 gart->iovmm_base = (dma_addr_t)res_remap->start; 465 gart->iovmm_base = (dma_addr_t)res_remap->start;
466 gart->page_count = (resource_size(res_remap) >> GART_PAGE_SHIFT); 466 gart->page_count = (resource_size(res_remap) >> GART_PAGE_SHIFT);
467 467
468 gart->savedata = vmalloc(sizeof(u32) * gart->page_count); 468 gart->savedata = vmalloc(array_size(sizeof(u32), gart->page_count));
469 if (!gart->savedata) { 469 if (!gart->savedata) {
470 dev_err(dev, "failed to allocate context save area\n"); 470 dev_err(dev, "failed to allocate context save area\n");
471 return -ENOMEM; 471 return -ENOMEM;
diff --git a/drivers/ipack/carriers/tpci200.c b/drivers/ipack/carriers/tpci200.c
index 9b23843dcad4..a16b320739b4 100644
--- a/drivers/ipack/carriers/tpci200.c
+++ b/drivers/ipack/carriers/tpci200.c
@@ -457,8 +457,8 @@ static int tpci200_install(struct tpci200_board *tpci200)
457{ 457{
458 int res; 458 int res;
459 459
460 tpci200->slots = kzalloc( 460 tpci200->slots = kcalloc(TPCI200_NB_SLOT, sizeof(struct tpci200_slot),
461 TPCI200_NB_SLOT * sizeof(struct tpci200_slot), GFP_KERNEL); 461 GFP_KERNEL);
462 if (tpci200->slots == NULL) 462 if (tpci200->slots == NULL)
463 return -ENOMEM; 463 return -ENOMEM;
464 464
diff --git a/drivers/irqchip/irq-alpine-msi.c b/drivers/irqchip/irq-alpine-msi.c
index 63d980995d17..23a3b877f7f1 100644
--- a/drivers/irqchip/irq-alpine-msi.c
+++ b/drivers/irqchip/irq-alpine-msi.c
@@ -268,7 +268,8 @@ static int alpine_msix_init(struct device_node *node,
268 goto err_priv; 268 goto err_priv;
269 } 269 }
270 270
271 priv->msi_map = kzalloc(sizeof(*priv->msi_map) * BITS_TO_LONGS(priv->num_spis), 271 priv->msi_map = kcalloc(BITS_TO_LONGS(priv->num_spis),
272 sizeof(*priv->msi_map),
272 GFP_KERNEL); 273 GFP_KERNEL);
273 if (!priv->msi_map) { 274 if (!priv->msi_map) {
274 ret = -ENOMEM; 275 ret = -ENOMEM;
diff --git a/drivers/irqchip/irq-gic-v2m.c b/drivers/irqchip/irq-gic-v2m.c
index 1ff38aff9f29..0f52d44b3f69 100644
--- a/drivers/irqchip/irq-gic-v2m.c
+++ b/drivers/irqchip/irq-gic-v2m.c
@@ -361,7 +361,7 @@ static int __init gicv2m_init_one(struct fwnode_handle *fwnode,
361 break; 361 break;
362 } 362 }
363 363
364 v2m->bm = kzalloc(sizeof(long) * BITS_TO_LONGS(v2m->nr_spis), 364 v2m->bm = kcalloc(BITS_TO_LONGS(v2m->nr_spis), sizeof(long),
365 GFP_KERNEL); 365 GFP_KERNEL);
366 if (!v2m->bm) { 366 if (!v2m->bm) {
367 ret = -ENOMEM; 367 ret = -ENOMEM;
diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c
index 5416f2b2ac21..5377d7e2afba 100644
--- a/drivers/irqchip/irq-gic-v3-its.c
+++ b/drivers/irqchip/irq-gic-v3-its.c
@@ -1239,7 +1239,7 @@ static int its_vlpi_map(struct irq_data *d, struct its_cmd_info *info)
1239 if (!its_dev->event_map.vm) { 1239 if (!its_dev->event_map.vm) {
1240 struct its_vlpi_map *maps; 1240 struct its_vlpi_map *maps;
1241 1241
1242 maps = kzalloc(sizeof(*maps) * its_dev->event_map.nr_lpis, 1242 maps = kcalloc(its_dev->event_map.nr_lpis, sizeof(*maps),
1243 GFP_KERNEL); 1243 GFP_KERNEL);
1244 if (!maps) { 1244 if (!maps) {
1245 ret = -ENOMEM; 1245 ret = -ENOMEM;
@@ -1437,7 +1437,7 @@ static int __init its_lpi_init(u32 id_bits)
1437{ 1437{
1438 lpi_chunks = its_lpi_to_chunk(1UL << id_bits); 1438 lpi_chunks = its_lpi_to_chunk(1UL << id_bits);
1439 1439
1440 lpi_bitmap = kzalloc(BITS_TO_LONGS(lpi_chunks) * sizeof(long), 1440 lpi_bitmap = kcalloc(BITS_TO_LONGS(lpi_chunks), sizeof(long),
1441 GFP_KERNEL); 1441 GFP_KERNEL);
1442 if (!lpi_bitmap) { 1442 if (!lpi_bitmap) {
1443 lpi_chunks = 0; 1443 lpi_chunks = 0;
@@ -1471,7 +1471,8 @@ static unsigned long *its_lpi_alloc_chunks(int nr_irqs, int *base, int *nr_ids)
1471 if (!nr_chunks) 1471 if (!nr_chunks)
1472 goto out; 1472 goto out;
1473 1473
1474 bitmap = kzalloc(BITS_TO_LONGS(nr_chunks * IRQS_PER_CHUNK) * sizeof (long), 1474 bitmap = kcalloc(BITS_TO_LONGS(nr_chunks * IRQS_PER_CHUNK),
1475 sizeof(long),
1475 GFP_ATOMIC); 1476 GFP_ATOMIC);
1476 if (!bitmap) 1477 if (!bitmap)
1477 goto out; 1478 goto out;
@@ -1823,7 +1824,7 @@ static int its_alloc_tables(struct its_node *its)
1823 1824
1824static int its_alloc_collections(struct its_node *its) 1825static int its_alloc_collections(struct its_node *its)
1825{ 1826{
1826 its->collections = kzalloc(nr_cpu_ids * sizeof(*its->collections), 1827 its->collections = kcalloc(nr_cpu_ids, sizeof(*its->collections),
1827 GFP_KERNEL); 1828 GFP_KERNEL);
1828 if (!its->collections) 1829 if (!its->collections)
1829 return -ENOMEM; 1830 return -ENOMEM;
@@ -2124,10 +2125,10 @@ static struct its_device *its_create_device(struct its_node *its, u32 dev_id,
2124 if (alloc_lpis) { 2125 if (alloc_lpis) {
2125 lpi_map = its_lpi_alloc_chunks(nvecs, &lpi_base, &nr_lpis); 2126 lpi_map = its_lpi_alloc_chunks(nvecs, &lpi_base, &nr_lpis);
2126 if (lpi_map) 2127 if (lpi_map)
2127 col_map = kzalloc(sizeof(*col_map) * nr_lpis, 2128 col_map = kcalloc(nr_lpis, sizeof(*col_map),
2128 GFP_KERNEL); 2129 GFP_KERNEL);
2129 } else { 2130 } else {
2130 col_map = kzalloc(sizeof(*col_map) * nr_ites, GFP_KERNEL); 2131 col_map = kcalloc(nr_ites, sizeof(*col_map), GFP_KERNEL);
2131 nr_lpis = 0; 2132 nr_lpis = 0;
2132 lpi_base = 0; 2133 lpi_base = 0;
2133 } 2134 }
@@ -3183,7 +3184,7 @@ static int its_init_vpe_domain(void)
3183 its = list_first_entry(&its_nodes, struct its_node, entry); 3184 its = list_first_entry(&its_nodes, struct its_node, entry);
3184 3185
3185 entries = roundup_pow_of_two(nr_cpu_ids); 3186 entries = roundup_pow_of_two(nr_cpu_ids);
3186 vpe_proxy.vpes = kzalloc(sizeof(*vpe_proxy.vpes) * entries, 3187 vpe_proxy.vpes = kcalloc(entries, sizeof(*vpe_proxy.vpes),
3187 GFP_KERNEL); 3188 GFP_KERNEL);
3188 if (!vpe_proxy.vpes) { 3189 if (!vpe_proxy.vpes) {
3189 pr_err("ITS: Can't allocate GICv4 proxy device array\n"); 3190 pr_err("ITS: Can't allocate GICv4 proxy device array\n");
@@ -3567,8 +3568,8 @@ static void __init acpi_table_parse_srat_its(void)
3567 if (count <= 0) 3568 if (count <= 0)
3568 return; 3569 return;
3569 3570
3570 its_srat_maps = kmalloc(count * sizeof(struct its_srat_map), 3571 its_srat_maps = kmalloc_array(count, sizeof(struct its_srat_map),
3571 GFP_KERNEL); 3572 GFP_KERNEL);
3572 if (!its_srat_maps) { 3573 if (!its_srat_maps) {
3573 pr_warn("SRAT: Failed to allocate memory for its_srat_maps!\n"); 3574 pr_warn("SRAT: Failed to allocate memory for its_srat_maps!\n");
3574 return; 3575 return;
diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c
index 5a67ec084588..76ea56d779a1 100644
--- a/drivers/irqchip/irq-gic-v3.c
+++ b/drivers/irqchip/irq-gic-v3.c
@@ -1167,7 +1167,7 @@ static void __init gic_populate_ppi_partitions(struct device_node *gic_node)
1167 if (!nr_parts) 1167 if (!nr_parts)
1168 goto out_put_node; 1168 goto out_put_node;
1169 1169
1170 parts = kzalloc(sizeof(*parts) * nr_parts, GFP_KERNEL); 1170 parts = kcalloc(nr_parts, sizeof(*parts), GFP_KERNEL);
1171 if (WARN_ON(!parts)) 1171 if (WARN_ON(!parts))
1172 goto out_put_node; 1172 goto out_put_node;
1173 1173
@@ -1289,7 +1289,8 @@ static int __init gic_of_init(struct device_node *node, struct device_node *pare
1289 if (of_property_read_u32(node, "#redistributor-regions", &nr_redist_regions)) 1289 if (of_property_read_u32(node, "#redistributor-regions", &nr_redist_regions))
1290 nr_redist_regions = 1; 1290 nr_redist_regions = 1;
1291 1291
1292 rdist_regs = kzalloc(sizeof(*rdist_regs) * nr_redist_regions, GFP_KERNEL); 1292 rdist_regs = kcalloc(nr_redist_regions, sizeof(*rdist_regs),
1293 GFP_KERNEL);
1293 if (!rdist_regs) { 1294 if (!rdist_regs) {
1294 err = -ENOMEM; 1295 err = -ENOMEM;
1295 goto out_unmap_dist; 1296 goto out_unmap_dist;
diff --git a/drivers/irqchip/irq-imgpdc.c b/drivers/irqchip/irq-imgpdc.c
index e80263e16c4c..d00489a4b54f 100644
--- a/drivers/irqchip/irq-imgpdc.c
+++ b/drivers/irqchip/irq-imgpdc.c
@@ -354,7 +354,7 @@ static int pdc_intc_probe(struct platform_device *pdev)
354 priv->nr_syswakes = val; 354 priv->nr_syswakes = val;
355 355
356 /* Get peripheral IRQ numbers */ 356 /* Get peripheral IRQ numbers */
357 priv->perip_irqs = devm_kzalloc(&pdev->dev, 4 * priv->nr_perips, 357 priv->perip_irqs = devm_kcalloc(&pdev->dev, 4, priv->nr_perips,
358 GFP_KERNEL); 358 GFP_KERNEL);
359 if (!priv->perip_irqs) { 359 if (!priv->perip_irqs) {
360 dev_err(&pdev->dev, "cannot allocate perip IRQ list\n"); 360 dev_err(&pdev->dev, "cannot allocate perip IRQ list\n");
diff --git a/drivers/irqchip/irq-mvebu-gicp.c b/drivers/irqchip/irq-mvebu-gicp.c
index 4e17f7081efc..3be5c5dba1da 100644
--- a/drivers/irqchip/irq-mvebu-gicp.c
+++ b/drivers/irqchip/irq-mvebu-gicp.c
@@ -191,8 +191,8 @@ static int mvebu_gicp_probe(struct platform_device *pdev)
191 gicp->spi_ranges_cnt = ret / 2; 191 gicp->spi_ranges_cnt = ret / 2;
192 192
193 gicp->spi_ranges = 193 gicp->spi_ranges =
194 devm_kzalloc(&pdev->dev, 194 devm_kcalloc(&pdev->dev,
195 gicp->spi_ranges_cnt * 195 gicp->spi_ranges_cnt,
196 sizeof(struct mvebu_gicp_spi_range), 196 sizeof(struct mvebu_gicp_spi_range),
197 GFP_KERNEL); 197 GFP_KERNEL);
198 if (!gicp->spi_ranges) 198 if (!gicp->spi_ranges)
@@ -210,8 +210,8 @@ static int mvebu_gicp_probe(struct platform_device *pdev)
210 gicp->spi_cnt += gicp->spi_ranges[i].count; 210 gicp->spi_cnt += gicp->spi_ranges[i].count;
211 } 211 }
212 212
213 gicp->spi_bitmap = devm_kzalloc(&pdev->dev, 213 gicp->spi_bitmap = devm_kcalloc(&pdev->dev,
214 BITS_TO_LONGS(gicp->spi_cnt) * sizeof(long), 214 BITS_TO_LONGS(gicp->spi_cnt), sizeof(long),
215 GFP_KERNEL); 215 GFP_KERNEL);
216 if (!gicp->spi_bitmap) 216 if (!gicp->spi_bitmap)
217 return -ENOMEM; 217 return -ENOMEM;
diff --git a/drivers/irqchip/irq-partition-percpu.c b/drivers/irqchip/irq-partition-percpu.c
index ccd72c2cbc23..1f7cc5933cd5 100644
--- a/drivers/irqchip/irq-partition-percpu.c
+++ b/drivers/irqchip/irq-partition-percpu.c
@@ -229,7 +229,7 @@ struct partition_desc *partition_create_desc(struct fwnode_handle *fwnode,
229 goto out; 229 goto out;
230 desc->domain = d; 230 desc->domain = d;
231 231
232 desc->bitmap = kzalloc(sizeof(long) * BITS_TO_LONGS(nr_parts), 232 desc->bitmap = kcalloc(BITS_TO_LONGS(nr_parts), sizeof(long),
233 GFP_KERNEL); 233 GFP_KERNEL);
234 if (WARN_ON(!desc->bitmap)) 234 if (WARN_ON(!desc->bitmap))
235 goto out; 235 goto out;
diff --git a/drivers/irqchip/irq-s3c24xx.c b/drivers/irqchip/irq-s3c24xx.c
index ec0e6a8cdb75..f6fd57ebe6e6 100644
--- a/drivers/irqchip/irq-s3c24xx.c
+++ b/drivers/irqchip/irq-s3c24xx.c
@@ -1261,7 +1261,7 @@ static int __init s3c_init_intc_of(struct device_node *np,
1261 return -ENOMEM; 1261 return -ENOMEM;
1262 1262
1263 intc->domain = domain; 1263 intc->domain = domain;
1264 intc->irqs = kzalloc(sizeof(struct s3c_irq_data) * 32, 1264 intc->irqs = kcalloc(32, sizeof(struct s3c_irq_data),
1265 GFP_KERNEL); 1265 GFP_KERNEL);
1266 if (!intc->irqs) { 1266 if (!intc->irqs) {
1267 kfree(intc); 1267 kfree(intc);
diff --git a/drivers/isdn/capi/capi.c b/drivers/isdn/capi/capi.c
index baa1ee2bc2ac..6e0c2814d032 100644
--- a/drivers/isdn/capi/capi.c
+++ b/drivers/isdn/capi/capi.c
@@ -1260,7 +1260,7 @@ static int __init capinc_tty_init(void)
1260 if (capi_ttyminors <= 0) 1260 if (capi_ttyminors <= 0)
1261 capi_ttyminors = CAPINC_NR_PORTS; 1261 capi_ttyminors = CAPINC_NR_PORTS;
1262 1262
1263 capiminors = kzalloc(sizeof(struct capiminor *) * capi_ttyminors, 1263 capiminors = kcalloc(capi_ttyminors, sizeof(struct capiminor *),
1264 GFP_KERNEL); 1264 GFP_KERNEL);
1265 if (!capiminors) 1265 if (!capiminors)
1266 return -ENOMEM; 1266 return -ENOMEM;
diff --git a/drivers/isdn/capi/capidrv.c b/drivers/isdn/capi/capidrv.c
index 7ac51798949d..ee510f901720 100644
--- a/drivers/isdn/capi/capidrv.c
+++ b/drivers/isdn/capi/capidrv.c
@@ -2268,7 +2268,8 @@ static int capidrv_addcontr(u16 contr, struct capi_profile *profp)
2268 strcpy(card->name, id); 2268 strcpy(card->name, id);
2269 card->contrnr = contr; 2269 card->contrnr = contr;
2270 card->nbchan = profp->nbchannel; 2270 card->nbchan = profp->nbchannel;
2271 card->bchans = kmalloc(sizeof(capidrv_bchan) * card->nbchan, GFP_ATOMIC); 2271 card->bchans = kmalloc_array(card->nbchan, sizeof(capidrv_bchan),
2272 GFP_ATOMIC);
2272 if (!card->bchans) { 2273 if (!card->bchans) {
2273 printk(KERN_WARNING 2274 printk(KERN_WARNING
2274 "capidrv: (%s) Could not allocate bchan-structs.\n", id); 2275 "capidrv: (%s) Could not allocate bchan-structs.\n", id);
diff --git a/drivers/isdn/gigaset/capi.c b/drivers/isdn/gigaset/capi.c
index 56748af78c04..9cb2ab57fa4a 100644
--- a/drivers/isdn/gigaset/capi.c
+++ b/drivers/isdn/gigaset/capi.c
@@ -252,7 +252,7 @@ static inline void dump_rawmsg(enum debuglevel level, const char *tag,
252 return; 252 return;
253 if (l > 64) 253 if (l > 64)
254 l = 64; /* arbitrary limit */ 254 l = 64; /* arbitrary limit */
255 dbgline = kmalloc(3 * l, GFP_ATOMIC); 255 dbgline = kmalloc_array(3, l, GFP_ATOMIC);
256 if (!dbgline) 256 if (!dbgline)
257 return; 257 return;
258 for (i = 0; i < l; i++) { 258 for (i = 0; i < l; i++) {
@@ -272,7 +272,7 @@ static inline void dump_rawmsg(enum debuglevel level, const char *tag,
272 return; 272 return;
273 if (l > 64) 273 if (l > 64)
274 l = 64; /* arbitrary limit */ 274 l = 64; /* arbitrary limit */
275 dbgline = kmalloc(3 * l, GFP_ATOMIC); 275 dbgline = kmalloc_array(3, l, GFP_ATOMIC);
276 if (!dbgline) 276 if (!dbgline)
277 return; 277 return;
278 data += CAPIMSG_LEN(data); 278 data += CAPIMSG_LEN(data);
@@ -1370,7 +1370,7 @@ static void do_connect_req(struct gigaset_capi_ctr *iif,
1370 cmsg->adr.adrPLCI |= (bcs->channel + 1) << 8; 1370 cmsg->adr.adrPLCI |= (bcs->channel + 1) << 8;
1371 1371
1372 /* build command table */ 1372 /* build command table */
1373 commands = kzalloc(AT_NUM * (sizeof *commands), GFP_KERNEL); 1373 commands = kcalloc(AT_NUM, sizeof(*commands), GFP_KERNEL);
1374 if (!commands) 1374 if (!commands)
1375 goto oom; 1375 goto oom;
1376 1376
diff --git a/drivers/isdn/gigaset/common.c b/drivers/isdn/gigaset/common.c
index 15482c5de33c..76b5407b5277 100644
--- a/drivers/isdn/gigaset/common.c
+++ b/drivers/isdn/gigaset/common.c
@@ -710,7 +710,7 @@ struct cardstate *gigaset_initcs(struct gigaset_driver *drv, int channels,
710 cs->mode = M_UNKNOWN; 710 cs->mode = M_UNKNOWN;
711 cs->mstate = MS_UNINITIALIZED; 711 cs->mstate = MS_UNINITIALIZED;
712 712
713 cs->bcs = kmalloc(channels * sizeof(struct bc_state), GFP_KERNEL); 713 cs->bcs = kmalloc_array(channels, sizeof(struct bc_state), GFP_KERNEL);
714 cs->inbuf = kmalloc(sizeof(struct inbuf_t), GFP_KERNEL); 714 cs->inbuf = kmalloc(sizeof(struct inbuf_t), GFP_KERNEL);
715 if (!cs->bcs || !cs->inbuf) { 715 if (!cs->bcs || !cs->inbuf) {
716 pr_err("out of memory\n"); 716 pr_err("out of memory\n");
@@ -1089,7 +1089,7 @@ struct gigaset_driver *gigaset_initdriver(unsigned minor, unsigned minors,
1089 drv->owner = owner; 1089 drv->owner = owner;
1090 INIT_LIST_HEAD(&drv->list); 1090 INIT_LIST_HEAD(&drv->list);
1091 1091
1092 drv->cs = kmalloc(minors * sizeof *drv->cs, GFP_KERNEL); 1092 drv->cs = kmalloc_array(minors, sizeof(*drv->cs), GFP_KERNEL);
1093 if (!drv->cs) 1093 if (!drv->cs)
1094 goto error; 1094 goto error;
1095 1095
diff --git a/drivers/isdn/gigaset/i4l.c b/drivers/isdn/gigaset/i4l.c
index 2d75329007f1..b5b389e95edd 100644
--- a/drivers/isdn/gigaset/i4l.c
+++ b/drivers/isdn/gigaset/i4l.c
@@ -243,7 +243,7 @@ static int command_from_LL(isdn_ctrl *cntrl)
243 dev_kfree_skb(bcs->rx_skb); 243 dev_kfree_skb(bcs->rx_skb);
244 gigaset_new_rx_skb(bcs); 244 gigaset_new_rx_skb(bcs);
245 245
246 commands = kzalloc(AT_NUM * (sizeof *commands), GFP_ATOMIC); 246 commands = kcalloc(AT_NUM, sizeof(*commands), GFP_ATOMIC);
247 if (!commands) { 247 if (!commands) {
248 gigaset_free_channel(bcs); 248 gigaset_free_channel(bcs);
249 dev_err(cs->dev, "ISDN_CMD_DIAL: out of memory\n"); 249 dev_err(cs->dev, "ISDN_CMD_DIAL: out of memory\n");
diff --git a/drivers/isdn/hardware/avm/b1.c b/drivers/isdn/hardware/avm/b1.c
index 5ee5489d3f15..4ac378e48902 100644
--- a/drivers/isdn/hardware/avm/b1.c
+++ b/drivers/isdn/hardware/avm/b1.c
@@ -72,7 +72,7 @@ avmcard *b1_alloc_card(int nr_controllers)
72 if (!card) 72 if (!card)
73 return NULL; 73 return NULL;
74 74
75 cinfo = kzalloc(sizeof(*cinfo) * nr_controllers, GFP_KERNEL); 75 cinfo = kcalloc(nr_controllers, sizeof(*cinfo), GFP_KERNEL);
76 if (!cinfo) { 76 if (!cinfo) {
77 kfree(card); 77 kfree(card);
78 return NULL; 78 return NULL;
diff --git a/drivers/isdn/hisax/fsm.c b/drivers/isdn/hisax/fsm.c
index 3e020ec0f65e..80ba82f77c63 100644
--- a/drivers/isdn/hisax/fsm.c
+++ b/drivers/isdn/hisax/fsm.c
@@ -27,7 +27,9 @@ FsmNew(struct Fsm *fsm, struct FsmNode *fnlist, int fncount)
27 int i; 27 int i;
28 28
29 fsm->jumpmatrix = 29 fsm->jumpmatrix =
30 kzalloc(sizeof(FSMFNPTR) * fsm->state_count * fsm->event_count, GFP_KERNEL); 30 kzalloc(array3_size(sizeof(FSMFNPTR), fsm->state_count,
31 fsm->event_count),
32 GFP_KERNEL);
31 if (!fsm->jumpmatrix) 33 if (!fsm->jumpmatrix)
32 return -ENOMEM; 34 return -ENOMEM;
33 35
diff --git a/drivers/isdn/hisax/hfc_2bds0.c b/drivers/isdn/hisax/hfc_2bds0.c
index 86b82172e992..3715fa0343db 100644
--- a/drivers/isdn/hisax/hfc_2bds0.c
+++ b/drivers/isdn/hisax/hfc_2bds0.c
@@ -1024,7 +1024,7 @@ static unsigned int
1024 int i; 1024 int i;
1025 unsigned *send; 1025 unsigned *send;
1026 1026
1027 if (!(send = kmalloc(cnt * sizeof(unsigned int), GFP_ATOMIC))) { 1027 if (!(send = kmalloc_array(cnt, sizeof(unsigned int), GFP_ATOMIC))) {
1028 printk(KERN_WARNING 1028 printk(KERN_WARNING
1029 "HiSax: No memory for hfcd.send\n"); 1029 "HiSax: No memory for hfcd.send\n");
1030 return (NULL); 1030 return (NULL);
diff --git a/drivers/isdn/hisax/hfc_2bs0.c b/drivers/isdn/hisax/hfc_2bs0.c
index 14dada42874e..34d59992839a 100644
--- a/drivers/isdn/hisax/hfc_2bs0.c
+++ b/drivers/isdn/hisax/hfc_2bs0.c
@@ -557,7 +557,8 @@ init_send(struct BCState *bcs)
557{ 557{
558 int i; 558 int i;
559 559
560 if (!(bcs->hw.hfc.send = kmalloc(32 * sizeof(unsigned int), GFP_ATOMIC))) { 560 bcs->hw.hfc.send = kmalloc_array(32, sizeof(unsigned int), GFP_ATOMIC);
561 if (!bcs->hw.hfc.send) {
561 printk(KERN_WARNING 562 printk(KERN_WARNING
562 "HiSax: No memory for hfc.send\n"); 563 "HiSax: No memory for hfc.send\n");
563 return; 564 return;
diff --git a/drivers/isdn/hisax/netjet.c b/drivers/isdn/hisax/netjet.c
index b7f54fa29228..e932a152c405 100644
--- a/drivers/isdn/hisax/netjet.c
+++ b/drivers/isdn/hisax/netjet.c
@@ -912,8 +912,10 @@ setstack_tiger(struct PStack *st, struct BCState *bcs)
912void 912void
913inittiger(struct IsdnCardState *cs) 913inittiger(struct IsdnCardState *cs)
914{ 914{
915 if (!(cs->bcs[0].hw.tiger.send = kmalloc(NETJET_DMA_TXSIZE * sizeof(unsigned int), 915 cs->bcs[0].hw.tiger.send = kmalloc_array(NETJET_DMA_TXSIZE,
916 GFP_KERNEL | GFP_DMA))) { 916 sizeof(unsigned int),
917 GFP_KERNEL | GFP_DMA);
918 if (!cs->bcs[0].hw.tiger.send) {
917 printk(KERN_WARNING 919 printk(KERN_WARNING
918 "HiSax: No memory for tiger.send\n"); 920 "HiSax: No memory for tiger.send\n");
919 return; 921 return;
@@ -933,8 +935,10 @@ inittiger(struct IsdnCardState *cs)
933 cs->hw.njet.base + NETJET_DMA_READ_IRQ); 935 cs->hw.njet.base + NETJET_DMA_READ_IRQ);
934 outl(virt_to_bus(cs->bcs[0].hw.tiger.s_end), 936 outl(virt_to_bus(cs->bcs[0].hw.tiger.s_end),
935 cs->hw.njet.base + NETJET_DMA_READ_END); 937 cs->hw.njet.base + NETJET_DMA_READ_END);
936 if (!(cs->bcs[0].hw.tiger.rec = kmalloc(NETJET_DMA_RXSIZE * sizeof(unsigned int), 938 cs->bcs[0].hw.tiger.rec = kmalloc_array(NETJET_DMA_RXSIZE,
937 GFP_KERNEL | GFP_DMA))) { 939 sizeof(unsigned int),
940 GFP_KERNEL | GFP_DMA);
941 if (!cs->bcs[0].hw.tiger.rec) {
938 printk(KERN_WARNING 942 printk(KERN_WARNING
939 "HiSax: No memory for tiger.rec\n"); 943 "HiSax: No memory for tiger.rec\n");
940 return; 944 return;
diff --git a/drivers/isdn/i4l/isdn_bsdcomp.c b/drivers/isdn/i4l/isdn_bsdcomp.c
index 99012c047751..7f28b967ed19 100644
--- a/drivers/isdn/i4l/isdn_bsdcomp.c
+++ b/drivers/isdn/i4l/isdn_bsdcomp.c
@@ -340,7 +340,7 @@ static void *bsd_alloc(struct isdn_ppp_comp_data *data)
340 * Allocate space for the dictionary. This may be more than one page in 340 * Allocate space for the dictionary. This may be more than one page in
341 * length. 341 * length.
342 */ 342 */
343 db->dict = vmalloc(hsize * sizeof(struct bsd_dict)); 343 db->dict = vmalloc(array_size(hsize, sizeof(struct bsd_dict)));
344 if (!db->dict) { 344 if (!db->dict) {
345 bsd_free(db); 345 bsd_free(db);
346 return NULL; 346 return NULL;
@@ -353,7 +353,8 @@ static void *bsd_alloc(struct isdn_ppp_comp_data *data)
353 if (!decomp) 353 if (!decomp)
354 db->lens = NULL; 354 db->lens = NULL;
355 else { 355 else {
356 db->lens = vmalloc((maxmaxcode + 1) * sizeof(db->lens[0])); 356 db->lens = vmalloc(array_size(sizeof(db->lens[0]),
357 maxmaxcode + 1));
357 if (!db->lens) { 358 if (!db->lens) {
358 bsd_free(db); 359 bsd_free(db);
359 return (NULL); 360 return (NULL);
diff --git a/drivers/isdn/i4l/isdn_common.c b/drivers/isdn/i4l/isdn_common.c
index 7c6f3f5d9d9a..7a501dbe7123 100644
--- a/drivers/isdn/i4l/isdn_common.c
+++ b/drivers/isdn/i4l/isdn_common.c
@@ -2070,14 +2070,14 @@ isdn_add_channels(isdn_driver_t *d, int drvidx, int n, int adding)
2070 2070
2071 if ((adding) && (d->rcverr)) 2071 if ((adding) && (d->rcverr))
2072 kfree(d->rcverr); 2072 kfree(d->rcverr);
2073 if (!(d->rcverr = kzalloc(sizeof(int) * m, GFP_ATOMIC))) { 2073 if (!(d->rcverr = kcalloc(m, sizeof(int), GFP_ATOMIC))) {
2074 printk(KERN_WARNING "register_isdn: Could not alloc rcverr\n"); 2074 printk(KERN_WARNING "register_isdn: Could not alloc rcverr\n");
2075 return -1; 2075 return -1;
2076 } 2076 }
2077 2077
2078 if ((adding) && (d->rcvcount)) 2078 if ((adding) && (d->rcvcount))
2079 kfree(d->rcvcount); 2079 kfree(d->rcvcount);
2080 if (!(d->rcvcount = kzalloc(sizeof(int) * m, GFP_ATOMIC))) { 2080 if (!(d->rcvcount = kcalloc(m, sizeof(int), GFP_ATOMIC))) {
2081 printk(KERN_WARNING "register_isdn: Could not alloc rcvcount\n"); 2081 printk(KERN_WARNING "register_isdn: Could not alloc rcvcount\n");
2082 if (!adding) 2082 if (!adding)
2083 kfree(d->rcverr); 2083 kfree(d->rcverr);
@@ -2089,7 +2089,8 @@ isdn_add_channels(isdn_driver_t *d, int drvidx, int n, int adding)
2089 skb_queue_purge(&d->rpqueue[j]); 2089 skb_queue_purge(&d->rpqueue[j]);
2090 kfree(d->rpqueue); 2090 kfree(d->rpqueue);
2091 } 2091 }
2092 if (!(d->rpqueue = kmalloc(sizeof(struct sk_buff_head) * m, GFP_ATOMIC))) { 2092 d->rpqueue = kmalloc_array(m, sizeof(struct sk_buff_head), GFP_ATOMIC);
2093 if (!d->rpqueue) {
2093 printk(KERN_WARNING "register_isdn: Could not alloc rpqueue\n"); 2094 printk(KERN_WARNING "register_isdn: Could not alloc rpqueue\n");
2094 if (!adding) { 2095 if (!adding) {
2095 kfree(d->rcvcount); 2096 kfree(d->rcvcount);
@@ -2103,7 +2104,8 @@ isdn_add_channels(isdn_driver_t *d, int drvidx, int n, int adding)
2103 2104
2104 if ((adding) && (d->rcv_waitq)) 2105 if ((adding) && (d->rcv_waitq))
2105 kfree(d->rcv_waitq); 2106 kfree(d->rcv_waitq);
2106 d->rcv_waitq = kmalloc(sizeof(wait_queue_head_t) * 2 * m, GFP_ATOMIC); 2107 d->rcv_waitq = kmalloc(array3_size(sizeof(wait_queue_head_t), 2, m),
2108 GFP_ATOMIC);
2107 if (!d->rcv_waitq) { 2109 if (!d->rcv_waitq) {
2108 printk(KERN_WARNING "register_isdn: Could not alloc rcv_waitq\n"); 2110 printk(KERN_WARNING "register_isdn: Could not alloc rcv_waitq\n");
2109 if (!adding) { 2111 if (!adding) {
diff --git a/drivers/isdn/mISDN/fsm.c b/drivers/isdn/mISDN/fsm.c
index cabcb906e0b5..9a8d08d677a4 100644
--- a/drivers/isdn/mISDN/fsm.c
+++ b/drivers/isdn/mISDN/fsm.c
@@ -32,8 +32,10 @@ mISDN_FsmNew(struct Fsm *fsm,
32{ 32{
33 int i; 33 int i;
34 34
35 fsm->jumpmatrix = kzalloc(sizeof(FSMFNPTR) * fsm->state_count * 35 fsm->jumpmatrix =
36 fsm->event_count, GFP_KERNEL); 36 kzalloc(array3_size(sizeof(FSMFNPTR), fsm->state_count,
37 fsm->event_count),
38 GFP_KERNEL);
37 if (fsm->jumpmatrix == NULL) 39 if (fsm->jumpmatrix == NULL)
38 return -ENOMEM; 40 return -ENOMEM;
39 41
diff --git a/drivers/leds/leds-adp5520.c b/drivers/leds/leds-adp5520.c
index 853b2d3bdb17..7ecf080f73ad 100644
--- a/drivers/leds/leds-adp5520.c
+++ b/drivers/leds/leds-adp5520.c
@@ -108,7 +108,7 @@ static int adp5520_led_probe(struct platform_device *pdev)
108 return -EFAULT; 108 return -EFAULT;
109 } 109 }
110 110
111 led = devm_kzalloc(&pdev->dev, sizeof(*led) * pdata->num_leds, 111 led = devm_kcalloc(&pdev->dev, pdata->num_leds, sizeof(*led),
112 GFP_KERNEL); 112 GFP_KERNEL);
113 if (!led) 113 if (!led)
114 return -ENOMEM; 114 return -ENOMEM;
diff --git a/drivers/leds/leds-apu.c b/drivers/leds/leds-apu.c
index 90eeedcbf371..8c93d68964c7 100644
--- a/drivers/leds/leds-apu.c
+++ b/drivers/leds/leds-apu.c
@@ -171,8 +171,8 @@ static int apu_led_config(struct device *dev, struct apu_led_pdata *apuld)
171 int i; 171 int i;
172 int err; 172 int err;
173 173
174 apu_led->pled = devm_kzalloc(dev, 174 apu_led->pled = devm_kcalloc(dev,
175 sizeof(struct apu_led_priv) * apu_led->num_led_instances, 175 apu_led->num_led_instances, sizeof(struct apu_led_priv),
176 GFP_KERNEL); 176 GFP_KERNEL);
177 177
178 if (!apu_led->pled) 178 if (!apu_led->pled)
diff --git a/drivers/leds/leds-cr0014114.c b/drivers/leds/leds-cr0014114.c
index a4b1c1dcce7f..0e4262462cb9 100644
--- a/drivers/leds/leds-cr0014114.c
+++ b/drivers/leds/leds-cr0014114.c
@@ -237,8 +237,7 @@ static int cr0014114_probe(struct spi_device *spi)
237 return -ENODEV; 237 return -ENODEV;
238 } 238 }
239 239
240 priv = devm_kzalloc(&spi->dev, 240 priv = devm_kzalloc(&spi->dev, struct_size(priv, leds, count),
241 sizeof(*priv) + sizeof(*priv->leds) * count,
242 GFP_KERNEL); 241 GFP_KERNEL);
243 if (!priv) 242 if (!priv)
244 return -ENOMEM; 243 return -ENOMEM;
diff --git a/drivers/leds/leds-da9052.c b/drivers/leds/leds-da9052.c
index f8c7d82c2652..31d4c94e6fd8 100644
--- a/drivers/leds/leds-da9052.c
+++ b/drivers/leds/leds-da9052.c
@@ -113,8 +113,8 @@ static int da9052_led_probe(struct platform_device *pdev)
113 goto err; 113 goto err;
114 } 114 }
115 115
116 led = devm_kzalloc(&pdev->dev, 116 led = devm_kcalloc(&pdev->dev,
117 sizeof(struct da9052_led) * pled->num_leds, 117 pled->num_leds, sizeof(struct da9052_led),
118 GFP_KERNEL); 118 GFP_KERNEL);
119 if (!led) { 119 if (!led) {
120 error = -ENOMEM; 120 error = -ENOMEM;
diff --git a/drivers/leds/leds-lp5521.c b/drivers/leds/leds-lp5521.c
index 55c0517fbe03..99689b51a73d 100644
--- a/drivers/leds/leds-lp5521.c
+++ b/drivers/leds/leds-lp5521.c
@@ -533,8 +533,8 @@ static int lp5521_probe(struct i2c_client *client,
533 if (!chip) 533 if (!chip)
534 return -ENOMEM; 534 return -ENOMEM;
535 535
536 led = devm_kzalloc(&client->dev, 536 led = devm_kcalloc(&client->dev,
537 sizeof(*led) * pdata->num_channels, GFP_KERNEL); 537 pdata->num_channels, sizeof(*led), GFP_KERNEL);
538 if (!led) 538 if (!led)
539 return -ENOMEM; 539 return -ENOMEM;
540 540
diff --git a/drivers/leds/leds-lp5523.c b/drivers/leds/leds-lp5523.c
index 52b6f529e278..a2e74feee2b2 100644
--- a/drivers/leds/leds-lp5523.c
+++ b/drivers/leds/leds-lp5523.c
@@ -898,8 +898,8 @@ static int lp5523_probe(struct i2c_client *client,
898 if (!chip) 898 if (!chip)
899 return -ENOMEM; 899 return -ENOMEM;
900 900
901 led = devm_kzalloc(&client->dev, 901 led = devm_kcalloc(&client->dev,
902 sizeof(*led) * pdata->num_channels, GFP_KERNEL); 902 pdata->num_channels, sizeof(*led), GFP_KERNEL);
903 if (!led) 903 if (!led)
904 return -ENOMEM; 904 return -ENOMEM;
905 905
diff --git a/drivers/leds/leds-lp5562.c b/drivers/leds/leds-lp5562.c
index 05ffa34fb6ad..2a9009fe5545 100644
--- a/drivers/leds/leds-lp5562.c
+++ b/drivers/leds/leds-lp5562.c
@@ -534,8 +534,8 @@ static int lp5562_probe(struct i2c_client *client,
534 if (!chip) 534 if (!chip)
535 return -ENOMEM; 535 return -ENOMEM;
536 536
537 led = devm_kzalloc(&client->dev, 537 led = devm_kcalloc(&client->dev,
538 sizeof(*led) * pdata->num_channels, GFP_KERNEL); 538 pdata->num_channels, sizeof(*led), GFP_KERNEL);
539 if (!led) 539 if (!led)
540 return -ENOMEM; 540 return -ENOMEM;
541 541
diff --git a/drivers/leds/leds-lp55xx-common.c b/drivers/leds/leds-lp55xx-common.c
index 5377f22ff994..3d79a6380761 100644
--- a/drivers/leds/leds-lp55xx-common.c
+++ b/drivers/leds/leds-lp55xx-common.c
@@ -560,7 +560,7 @@ struct lp55xx_platform_data *lp55xx_of_populate_pdata(struct device *dev,
560 return ERR_PTR(-EINVAL); 560 return ERR_PTR(-EINVAL);
561 } 561 }
562 562
563 cfg = devm_kzalloc(dev, sizeof(*cfg) * num_channels, GFP_KERNEL); 563 cfg = devm_kcalloc(dev, num_channels, sizeof(*cfg), GFP_KERNEL);
564 if (!cfg) 564 if (!cfg)
565 return ERR_PTR(-ENOMEM); 565 return ERR_PTR(-ENOMEM);
566 566
diff --git a/drivers/leds/leds-lp8501.c b/drivers/leds/leds-lp8501.c
index 3adb113cf02e..4c800b5989a9 100644
--- a/drivers/leds/leds-lp8501.c
+++ b/drivers/leds/leds-lp8501.c
@@ -327,8 +327,8 @@ static int lp8501_probe(struct i2c_client *client,
327 if (!chip) 327 if (!chip)
328 return -ENOMEM; 328 return -ENOMEM;
329 329
330 led = devm_kzalloc(&client->dev, 330 led = devm_kcalloc(&client->dev,
331 sizeof(*led) * pdata->num_channels, GFP_KERNEL); 331 pdata->num_channels, sizeof(*led), GFP_KERNEL);
332 if (!led) 332 if (!led)
333 return -ENOMEM; 333 return -ENOMEM;
334 334
diff --git a/drivers/leds/leds-lt3593.c b/drivers/leds/leds-lt3593.c
index a7ff510cbdd0..5ec730a31b65 100644
--- a/drivers/leds/leds-lt3593.c
+++ b/drivers/leds/leds-lt3593.c
@@ -128,8 +128,8 @@ static int lt3593_led_probe(struct platform_device *pdev)
128 if (!pdata) 128 if (!pdata)
129 return -EBUSY; 129 return -EBUSY;
130 130
131 leds_data = devm_kzalloc(&pdev->dev, 131 leds_data = devm_kcalloc(&pdev->dev,
132 sizeof(struct lt3593_led_data) * pdata->num_leds, 132 pdata->num_leds, sizeof(struct lt3593_led_data),
133 GFP_KERNEL); 133 GFP_KERNEL);
134 if (!leds_data) 134 if (!leds_data)
135 return -ENOMEM; 135 return -ENOMEM;
diff --git a/drivers/leds/leds-mc13783.c b/drivers/leds/leds-mc13783.c
index 2421cf104991..47ad7de9553c 100644
--- a/drivers/leds/leds-mc13783.c
+++ b/drivers/leds/leds-mc13783.c
@@ -136,7 +136,7 @@ static struct mc13xxx_leds_platform_data __init *mc13xxx_led_probe_dt(
136 136
137 pdata->num_leds = of_get_child_count(parent); 137 pdata->num_leds = of_get_child_count(parent);
138 138
139 pdata->led = devm_kzalloc(dev, pdata->num_leds * sizeof(*pdata->led), 139 pdata->led = devm_kcalloc(dev, pdata->num_leds, sizeof(*pdata->led),
140 GFP_KERNEL); 140 GFP_KERNEL);
141 if (!pdata->led) { 141 if (!pdata->led) {
142 ret = -ENOMEM; 142 ret = -ENOMEM;
@@ -210,7 +210,7 @@ static int __init mc13xxx_led_probe(struct platform_device *pdev)
210 return -EINVAL; 210 return -EINVAL;
211 } 211 }
212 212
213 leds->led = devm_kzalloc(dev, leds->num_leds * sizeof(*leds->led), 213 leds->led = devm_kcalloc(dev, leds->num_leds, sizeof(*leds->led),
214 GFP_KERNEL); 214 GFP_KERNEL);
215 if (!leds->led) 215 if (!leds->led)
216 return -ENOMEM; 216 return -ENOMEM;
diff --git a/drivers/leds/leds-mlxcpld.c b/drivers/leds/leds-mlxcpld.c
index 281482e1d50f..f4721f8065f0 100644
--- a/drivers/leds/leds-mlxcpld.c
+++ b/drivers/leds/leds-mlxcpld.c
@@ -329,8 +329,10 @@ static int mlxcpld_led_config(struct device *dev,
329 int i; 329 int i;
330 int err; 330 int err;
331 331
332 cpld->pled = devm_kzalloc(dev, sizeof(struct mlxcpld_led_priv) * 332 cpld->pled = devm_kcalloc(dev,
333 cpld->num_led_instances, GFP_KERNEL); 333 cpld->num_led_instances,
334 sizeof(struct mlxcpld_led_priv),
335 GFP_KERNEL);
334 if (!cpld->pled) 336 if (!cpld->pled)
335 return -ENOMEM; 337 return -ENOMEM;
336 338
diff --git a/drivers/leds/leds-netxbig.c b/drivers/leds/leds-netxbig.c
index f48b1aed9b4e..62fa0de526ee 100644
--- a/drivers/leds/leds-netxbig.c
+++ b/drivers/leds/leds-netxbig.c
@@ -335,7 +335,7 @@ static int gpio_ext_get_of_pdata(struct device *dev, struct device_node *np,
335 return ret; 335 return ret;
336 } 336 }
337 num_addr = ret; 337 num_addr = ret;
338 addr = devm_kzalloc(dev, num_addr * sizeof(*addr), GFP_KERNEL); 338 addr = devm_kcalloc(dev, num_addr, sizeof(*addr), GFP_KERNEL);
339 if (!addr) 339 if (!addr)
340 return -ENOMEM; 340 return -ENOMEM;
341 341
@@ -355,7 +355,7 @@ static int gpio_ext_get_of_pdata(struct device *dev, struct device_node *np,
355 return ret; 355 return ret;
356 } 356 }
357 num_data = ret; 357 num_data = ret;
358 data = devm_kzalloc(dev, num_data * sizeof(*data), GFP_KERNEL); 358 data = devm_kcalloc(dev, num_data, sizeof(*data), GFP_KERNEL);
359 if (!data) 359 if (!data)
360 return -ENOMEM; 360 return -ENOMEM;
361 361
@@ -415,7 +415,7 @@ static int netxbig_leds_get_of_pdata(struct device *dev,
415 if (ret % 3) 415 if (ret % 3)
416 return -EINVAL; 416 return -EINVAL;
417 num_timers = ret / 3; 417 num_timers = ret / 3;
418 timers = devm_kzalloc(dev, num_timers * sizeof(*timers), 418 timers = devm_kcalloc(dev, num_timers, sizeof(*timers),
419 GFP_KERNEL); 419 GFP_KERNEL);
420 if (!timers) 420 if (!timers)
421 return -ENOMEM; 421 return -ENOMEM;
@@ -444,7 +444,7 @@ static int netxbig_leds_get_of_pdata(struct device *dev,
444 return -ENODEV; 444 return -ENODEV;
445 } 445 }
446 446
447 leds = devm_kzalloc(dev, num_leds * sizeof(*leds), GFP_KERNEL); 447 leds = devm_kcalloc(dev, num_leds, sizeof(*leds), GFP_KERNEL);
448 if (!leds) 448 if (!leds)
449 return -ENOMEM; 449 return -ENOMEM;
450 450
@@ -470,8 +470,8 @@ static int netxbig_leds_get_of_pdata(struct device *dev,
470 goto err_node_put; 470 goto err_node_put;
471 471
472 mode_val = 472 mode_val =
473 devm_kzalloc(dev, 473 devm_kcalloc(dev,
474 NETXBIG_LED_MODE_NUM * sizeof(*mode_val), 474 NETXBIG_LED_MODE_NUM, sizeof(*mode_val),
475 GFP_KERNEL); 475 GFP_KERNEL);
476 if (!mode_val) { 476 if (!mode_val) {
477 ret = -ENOMEM; 477 ret = -ENOMEM;
@@ -560,8 +560,8 @@ static int netxbig_led_probe(struct platform_device *pdev)
560 return ret; 560 return ret;
561 } 561 }
562 562
563 leds_data = devm_kzalloc(&pdev->dev, 563 leds_data = devm_kcalloc(&pdev->dev,
564 pdata->num_leds * sizeof(*leds_data), 564 pdata->num_leds, sizeof(*leds_data),
565 GFP_KERNEL); 565 GFP_KERNEL);
566 if (!leds_data) 566 if (!leds_data)
567 return -ENOMEM; 567 return -ENOMEM;
diff --git a/drivers/leds/leds-ns2.c b/drivers/leds/leds-ns2.c
index 506b75b190e7..14fe5cd43232 100644
--- a/drivers/leds/leds-ns2.c
+++ b/drivers/leds/leds-ns2.c
@@ -264,7 +264,7 @@ ns2_leds_get_of_pdata(struct device *dev, struct ns2_led_platform_data *pdata)
264 if (!num_leds) 264 if (!num_leds)
265 return -ENODEV; 265 return -ENODEV;
266 266
267 leds = devm_kzalloc(dev, num_leds * sizeof(struct ns2_led), 267 leds = devm_kcalloc(dev, num_leds, sizeof(struct ns2_led),
268 GFP_KERNEL); 268 GFP_KERNEL);
269 if (!leds) 269 if (!leds)
270 return -ENOMEM; 270 return -ENOMEM;
@@ -298,8 +298,9 @@ ns2_leds_get_of_pdata(struct device *dev, struct ns2_led_platform_data *pdata)
298 } 298 }
299 299
300 num_modes = ret / 3; 300 num_modes = ret / 3;
301 modval = devm_kzalloc(dev, 301 modval = devm_kcalloc(dev,
302 num_modes * sizeof(struct ns2_led_modval), 302 num_modes,
303 sizeof(struct ns2_led_modval),
303 GFP_KERNEL); 304 GFP_KERNEL);
304 if (!modval) 305 if (!modval)
305 return -ENOMEM; 306 return -ENOMEM;
diff --git a/drivers/leds/leds-pca955x.c b/drivers/leds/leds-pca955x.c
index 78183f90820e..f51b356d4426 100644
--- a/drivers/leds/leds-pca955x.c
+++ b/drivers/leds/leds-pca955x.c
@@ -390,8 +390,8 @@ pca955x_pdata_of_init(struct i2c_client *client, struct pca955x_chipdef *chip)
390 if (!pdata) 390 if (!pdata)
391 return ERR_PTR(-ENOMEM); 391 return ERR_PTR(-ENOMEM);
392 392
393 pdata->leds = devm_kzalloc(&client->dev, 393 pdata->leds = devm_kcalloc(&client->dev,
394 sizeof(struct pca955x_led) * chip->bits, 394 chip->bits, sizeof(struct pca955x_led),
395 GFP_KERNEL); 395 GFP_KERNEL);
396 if (!pdata->leds) 396 if (!pdata->leds)
397 return ERR_PTR(-ENOMEM); 397 return ERR_PTR(-ENOMEM);
@@ -494,8 +494,8 @@ static int pca955x_probe(struct i2c_client *client,
494 if (!pca955x) 494 if (!pca955x)
495 return -ENOMEM; 495 return -ENOMEM;
496 496
497 pca955x->leds = devm_kzalloc(&client->dev, 497 pca955x->leds = devm_kcalloc(&client->dev,
498 sizeof(*pca955x_led) * chip->bits, GFP_KERNEL); 498 chip->bits, sizeof(*pca955x_led), GFP_KERNEL);
499 if (!pca955x->leds) 499 if (!pca955x->leds)
500 return -ENOMEM; 500 return -ENOMEM;
501 501
diff --git a/drivers/leds/leds-pca963x.c b/drivers/leds/leds-pca963x.c
index 3bf9a1271819..5c0908113e38 100644
--- a/drivers/leds/leds-pca963x.c
+++ b/drivers/leds/leds-pca963x.c
@@ -300,8 +300,8 @@ pca963x_dt_init(struct i2c_client *client, struct pca963x_chipdef *chip)
300 if (!count || count > chip->n_leds) 300 if (!count || count > chip->n_leds)
301 return ERR_PTR(-ENODEV); 301 return ERR_PTR(-ENODEV);
302 302
303 pca963x_leds = devm_kzalloc(&client->dev, 303 pca963x_leds = devm_kcalloc(&client->dev,
304 sizeof(struct led_info) * chip->n_leds, GFP_KERNEL); 304 chip->n_leds, sizeof(struct led_info), GFP_KERNEL);
305 if (!pca963x_leds) 305 if (!pca963x_leds)
306 return ERR_PTR(-ENOMEM); 306 return ERR_PTR(-ENOMEM);
307 307
@@ -407,7 +407,7 @@ static int pca963x_probe(struct i2c_client *client,
407 GFP_KERNEL); 407 GFP_KERNEL);
408 if (!pca963x_chip) 408 if (!pca963x_chip)
409 return -ENOMEM; 409 return -ENOMEM;
410 pca963x = devm_kzalloc(&client->dev, chip->n_leds * sizeof(*pca963x), 410 pca963x = devm_kcalloc(&client->dev, chip->n_leds, sizeof(*pca963x),
411 GFP_KERNEL); 411 GFP_KERNEL);
412 if (!pca963x) 412 if (!pca963x)
413 return -ENOMEM; 413 return -ENOMEM;
diff --git a/drivers/leds/leds-tca6507.c b/drivers/leds/leds-tca6507.c
index c12c16fb1b9c..8f343afa4787 100644
--- a/drivers/leds/leds-tca6507.c
+++ b/drivers/leds/leds-tca6507.c
@@ -697,8 +697,8 @@ tca6507_led_dt_init(struct i2c_client *client)
697 if (!count || count > NUM_LEDS) 697 if (!count || count > NUM_LEDS)
698 return ERR_PTR(-ENODEV); 698 return ERR_PTR(-ENODEV);
699 699
700 tca_leds = devm_kzalloc(&client->dev, 700 tca_leds = devm_kcalloc(&client->dev,
701 sizeof(struct led_info) * NUM_LEDS, GFP_KERNEL); 701 NUM_LEDS, sizeof(struct led_info), GFP_KERNEL);
702 if (!tca_leds) 702 if (!tca_leds)
703 return ERR_PTR(-ENOMEM); 703 return ERR_PTR(-ENOMEM);
704 704
diff --git a/drivers/lightnvm/pblk-gc.c b/drivers/lightnvm/pblk-gc.c
index 6a4883e40cc0..080469d90b40 100644
--- a/drivers/lightnvm/pblk-gc.c
+++ b/drivers/lightnvm/pblk-gc.c
@@ -88,7 +88,7 @@ static void pblk_gc_line_ws(struct work_struct *work)
88 88
89 up(&gc->gc_sem); 89 up(&gc->gc_sem);
90 90
91 gc_rq->data = vmalloc(gc_rq->nr_secs * geo->csecs); 91 gc_rq->data = vmalloc(array_size(gc_rq->nr_secs, geo->csecs));
92 if (!gc_rq->data) { 92 if (!gc_rq->data) {
93 pr_err("pblk: could not GC line:%d (%d/%d)\n", 93 pr_err("pblk: could not GC line:%d (%d/%d)\n",
94 line->id, *line->vsc, gc_rq->nr_secs); 94 line->id, *line->vsc, gc_rq->nr_secs);
diff --git a/drivers/lightnvm/pblk-init.c b/drivers/lightnvm/pblk-init.c
index 491df0fa0835..b57f764d6a16 100644
--- a/drivers/lightnvm/pblk-init.c
+++ b/drivers/lightnvm/pblk-init.c
@@ -187,7 +187,7 @@ static int pblk_rwb_init(struct pblk *pblk)
187 187
188 nr_entries = pblk_rb_calculate_size(buffer_size); 188 nr_entries = pblk_rb_calculate_size(buffer_size);
189 189
190 entries = vzalloc(nr_entries * sizeof(struct pblk_rb_entry)); 190 entries = vzalloc(array_size(nr_entries, sizeof(struct pblk_rb_entry)));
191 if (!entries) 191 if (!entries)
192 return -ENOMEM; 192 return -ENOMEM;
193 193
@@ -379,7 +379,7 @@ static int pblk_core_init(struct pblk *pblk)
379 return -EINVAL; 379 return -EINVAL;
380 } 380 }
381 381
382 pblk->pad_dist = kzalloc((pblk->min_write_pgs - 1) * sizeof(atomic64_t), 382 pblk->pad_dist = kcalloc(pblk->min_write_pgs - 1, sizeof(atomic64_t),
383 GFP_KERNEL); 383 GFP_KERNEL);
384 if (!pblk->pad_dist) 384 if (!pblk->pad_dist)
385 return -ENOMEM; 385 return -ENOMEM;
@@ -833,8 +833,8 @@ static int pblk_alloc_line_meta(struct pblk *pblk, struct pblk_line *line)
833 goto free_blk_bitmap; 833 goto free_blk_bitmap;
834 834
835 835
836 line->chks = kmalloc(lm->blk_per_line * sizeof(struct nvm_chk_meta), 836 line->chks = kmalloc_array(lm->blk_per_line,
837 GFP_KERNEL); 837 sizeof(struct nvm_chk_meta), GFP_KERNEL);
838 if (!line->chks) 838 if (!line->chks)
839 goto free_erase_bitmap; 839 goto free_erase_bitmap;
840 840
diff --git a/drivers/lightnvm/pblk-recovery.c b/drivers/lightnvm/pblk-recovery.c
index 598342833d0d..3a5069183859 100644
--- a/drivers/lightnvm/pblk-recovery.c
+++ b/drivers/lightnvm/pblk-recovery.c
@@ -260,7 +260,7 @@ static int pblk_recov_pad_oob(struct pblk *pblk, struct pblk_line *line,
260 if (!pad_rq) 260 if (!pad_rq)
261 return -ENOMEM; 261 return -ENOMEM;
262 262
263 data = vzalloc(pblk->max_write_pgs * geo->csecs); 263 data = vzalloc(array_size(pblk->max_write_pgs, geo->csecs));
264 if (!data) { 264 if (!data) {
265 ret = -ENOMEM; 265 ret = -ENOMEM;
266 goto free_rq; 266 goto free_rq;
diff --git a/drivers/mailbox/hi6220-mailbox.c b/drivers/mailbox/hi6220-mailbox.c
index 519376d3534c..4fa9803cd204 100644
--- a/drivers/mailbox/hi6220-mailbox.c
+++ b/drivers/mailbox/hi6220-mailbox.c
@@ -282,13 +282,13 @@ static int hi6220_mbox_probe(struct platform_device *pdev)
282 282
283 mbox->dev = dev; 283 mbox->dev = dev;
284 mbox->chan_num = MBOX_CHAN_MAX; 284 mbox->chan_num = MBOX_CHAN_MAX;
285 mbox->mchan = devm_kzalloc(dev, 285 mbox->mchan = devm_kcalloc(dev,
286 mbox->chan_num * sizeof(*mbox->mchan), GFP_KERNEL); 286 mbox->chan_num, sizeof(*mbox->mchan), GFP_KERNEL);
287 if (!mbox->mchan) 287 if (!mbox->mchan)
288 return -ENOMEM; 288 return -ENOMEM;
289 289
290 mbox->chan = devm_kzalloc(dev, 290 mbox->chan = devm_kcalloc(dev,
291 mbox->chan_num * sizeof(*mbox->chan), GFP_KERNEL); 291 mbox->chan_num, sizeof(*mbox->chan), GFP_KERNEL);
292 if (!mbox->chan) 292 if (!mbox->chan)
293 return -ENOMEM; 293 return -ENOMEM;
294 294
diff --git a/drivers/mailbox/mailbox-sti.c b/drivers/mailbox/mailbox-sti.c
index 41bcd339b68a..779d41262ef0 100644
--- a/drivers/mailbox/mailbox-sti.c
+++ b/drivers/mailbox/mailbox-sti.c
@@ -442,8 +442,8 @@ static int sti_mbox_probe(struct platform_device *pdev)
442 if (!mbox) 442 if (!mbox)
443 return -ENOMEM; 443 return -ENOMEM;
444 444
445 chans = devm_kzalloc(&pdev->dev, 445 chans = devm_kcalloc(&pdev->dev,
446 sizeof(*chans) * STI_MBOX_CHAN_MAX, GFP_KERNEL); 446 STI_MBOX_CHAN_MAX, sizeof(*chans), GFP_KERNEL);
447 if (!chans) 447 if (!chans)
448 return -ENOMEM; 448 return -ENOMEM;
449 449
diff --git a/drivers/mailbox/omap-mailbox.c b/drivers/mailbox/omap-mailbox.c
index 2517038a8452..e1e2c085e68e 100644
--- a/drivers/mailbox/omap-mailbox.c
+++ b/drivers/mailbox/omap-mailbox.c
@@ -729,7 +729,7 @@ static int omap_mbox_probe(struct platform_device *pdev)
729 return -ENODEV; 729 return -ENODEV;
730 } 730 }
731 731
732 finfoblk = devm_kzalloc(&pdev->dev, info_count * sizeof(*finfoblk), 732 finfoblk = devm_kcalloc(&pdev->dev, info_count, sizeof(*finfoblk),
733 GFP_KERNEL); 733 GFP_KERNEL);
734 if (!finfoblk) 734 if (!finfoblk)
735 return -ENOMEM; 735 return -ENOMEM;
@@ -773,23 +773,23 @@ static int omap_mbox_probe(struct platform_device *pdev)
773 if (IS_ERR(mdev->mbox_base)) 773 if (IS_ERR(mdev->mbox_base))
774 return PTR_ERR(mdev->mbox_base); 774 return PTR_ERR(mdev->mbox_base);
775 775
776 mdev->irq_ctx = devm_kzalloc(&pdev->dev, num_users * sizeof(u32), 776 mdev->irq_ctx = devm_kcalloc(&pdev->dev, num_users, sizeof(u32),
777 GFP_KERNEL); 777 GFP_KERNEL);
778 if (!mdev->irq_ctx) 778 if (!mdev->irq_ctx)
779 return -ENOMEM; 779 return -ENOMEM;
780 780
781 /* allocate one extra for marking end of list */ 781 /* allocate one extra for marking end of list */
782 list = devm_kzalloc(&pdev->dev, (info_count + 1) * sizeof(*list), 782 list = devm_kcalloc(&pdev->dev, info_count + 1, sizeof(*list),
783 GFP_KERNEL); 783 GFP_KERNEL);
784 if (!list) 784 if (!list)
785 return -ENOMEM; 785 return -ENOMEM;
786 786
787 chnls = devm_kzalloc(&pdev->dev, (info_count + 1) * sizeof(*chnls), 787 chnls = devm_kcalloc(&pdev->dev, info_count + 1, sizeof(*chnls),
788 GFP_KERNEL); 788 GFP_KERNEL);
789 if (!chnls) 789 if (!chnls)
790 return -ENOMEM; 790 return -ENOMEM;
791 791
792 mboxblk = devm_kzalloc(&pdev->dev, info_count * sizeof(*mbox), 792 mboxblk = devm_kcalloc(&pdev->dev, info_count, sizeof(*mbox),
793 GFP_KERNEL); 793 GFP_KERNEL);
794 if (!mboxblk) 794 if (!mboxblk)
795 return -ENOMEM; 795 return -ENOMEM;
diff --git a/drivers/mailbox/pcc.c b/drivers/mailbox/pcc.c
index fc3c237daef2..311e91b1a14f 100644
--- a/drivers/mailbox/pcc.c
+++ b/drivers/mailbox/pcc.c
@@ -466,7 +466,8 @@ static int __init acpi_pcc_probe(void)
466 return -EINVAL; 466 return -EINVAL;
467 } 467 }
468 468
469 pcc_mbox_channels = kzalloc(sizeof(struct mbox_chan) * count, GFP_KERNEL); 469 pcc_mbox_channels = kcalloc(count, sizeof(struct mbox_chan),
470 GFP_KERNEL);
470 if (!pcc_mbox_channels) { 471 if (!pcc_mbox_channels) {
471 pr_err("Could not allocate space for PCC mbox channels\n"); 472 pr_err("Could not allocate space for PCC mbox channels\n");
472 return -ENOMEM; 473 return -ENOMEM;
diff --git a/drivers/mailbox/ti-msgmgr.c b/drivers/mailbox/ti-msgmgr.c
index 78753a87ba4d..5d04738c3c8a 100644
--- a/drivers/mailbox/ti-msgmgr.c
+++ b/drivers/mailbox/ti-msgmgr.c
@@ -568,12 +568,12 @@ static int ti_msgmgr_probe(struct platform_device *pdev)
568 } 568 }
569 inst->num_valid_queues = queue_count; 569 inst->num_valid_queues = queue_count;
570 570
571 qinst = devm_kzalloc(dev, sizeof(*qinst) * queue_count, GFP_KERNEL); 571 qinst = devm_kcalloc(dev, queue_count, sizeof(*qinst), GFP_KERNEL);
572 if (!qinst) 572 if (!qinst)
573 return -ENOMEM; 573 return -ENOMEM;
574 inst->qinsts = qinst; 574 inst->qinsts = qinst;
575 575
576 chans = devm_kzalloc(dev, sizeof(*chans) * queue_count, GFP_KERNEL); 576 chans = devm_kcalloc(dev, queue_count, sizeof(*chans), GFP_KERNEL);
577 if (!chans) 577 if (!chans)
578 return -ENOMEM; 578 return -ENOMEM;
579 inst->chans = chans; 579 inst->chans = chans;
diff --git a/drivers/md/bcache/super.c b/drivers/md/bcache/super.c
index a31e55bcc4e5..fa4058e43202 100644
--- a/drivers/md/bcache/super.c
+++ b/drivers/md/bcache/super.c
@@ -1715,7 +1715,7 @@ struct cache_set *bch_cache_set_alloc(struct cache_sb *sb)
1715 iter_size = (sb->bucket_size / sb->block_size + 1) * 1715 iter_size = (sb->bucket_size / sb->block_size + 1) *
1716 sizeof(struct btree_iter_set); 1716 sizeof(struct btree_iter_set);
1717 1717
1718 if (!(c->devices = kzalloc(c->nr_uuids * sizeof(void *), GFP_KERNEL)) || 1718 if (!(c->devices = kcalloc(c->nr_uuids, sizeof(void *), GFP_KERNEL)) ||
1719 mempool_init_slab_pool(&c->search, 32, bch_search_cache) || 1719 mempool_init_slab_pool(&c->search, 32, bch_search_cache) ||
1720 mempool_init_kmalloc_pool(&c->bio_meta, 2, 1720 mempool_init_kmalloc_pool(&c->bio_meta, 2,
1721 sizeof(struct bbio) + sizeof(struct bio_vec) * 1721 sizeof(struct bbio) + sizeof(struct bio_vec) *
@@ -2041,10 +2041,11 @@ static int cache_alloc(struct cache *ca)
2041 !init_fifo(&ca->free[RESERVE_NONE], free, GFP_KERNEL) || 2041 !init_fifo(&ca->free[RESERVE_NONE], free, GFP_KERNEL) ||
2042 !init_fifo(&ca->free_inc, free << 2, GFP_KERNEL) || 2042 !init_fifo(&ca->free_inc, free << 2, GFP_KERNEL) ||
2043 !init_heap(&ca->heap, free << 3, GFP_KERNEL) || 2043 !init_heap(&ca->heap, free << 3, GFP_KERNEL) ||
2044 !(ca->buckets = vzalloc(sizeof(struct bucket) * 2044 !(ca->buckets = vzalloc(array_size(sizeof(struct bucket),
2045 ca->sb.nbuckets)) || 2045 ca->sb.nbuckets))) ||
2046 !(ca->prio_buckets = kzalloc(sizeof(uint64_t) * prio_buckets(ca) * 2046 !(ca->prio_buckets = kzalloc(array3_size(sizeof(uint64_t),
2047 2, GFP_KERNEL)) || 2047 prio_buckets(ca), 2),
2048 GFP_KERNEL)) ||
2048 !(ca->disk_buckets = alloc_bucket_pages(GFP_KERNEL, ca))) 2049 !(ca->disk_buckets = alloc_bucket_pages(GFP_KERNEL, ca)))
2049 return -ENOMEM; 2050 return -ENOMEM;
2050 2051
diff --git a/drivers/md/bcache/sysfs.c b/drivers/md/bcache/sysfs.c
index 8ccbc8f3b3af..225b15aa0340 100644
--- a/drivers/md/bcache/sysfs.c
+++ b/drivers/md/bcache/sysfs.c
@@ -881,7 +881,8 @@ SHOW(__bch_cache)
881 uint16_t q[31], *p, *cached; 881 uint16_t q[31], *p, *cached;
882 ssize_t ret; 882 ssize_t ret;
883 883
884 cached = p = vmalloc(ca->sb.nbuckets * sizeof(uint16_t)); 884 cached = p = vmalloc(array_size(sizeof(uint16_t),
885 ca->sb.nbuckets));
885 if (!p) 886 if (!p)
886 return -ENOMEM; 887 return -ENOMEM;
887 888
diff --git a/drivers/md/dm-cache-policy-smq.c b/drivers/md/dm-cache-policy-smq.c
index 4ab23d0075f6..1b5b9ad9e492 100644
--- a/drivers/md/dm-cache-policy-smq.c
+++ b/drivers/md/dm-cache-policy-smq.c
@@ -69,7 +69,7 @@ static int space_init(struct entry_space *es, unsigned nr_entries)
69 return 0; 69 return 0;
70 } 70 }
71 71
72 es->begin = vzalloc(sizeof(struct entry) * nr_entries); 72 es->begin = vzalloc(array_size(nr_entries, sizeof(struct entry)));
73 if (!es->begin) 73 if (!es->begin)
74 return -ENOMEM; 74 return -ENOMEM;
75 75
@@ -588,7 +588,7 @@ static int h_init(struct smq_hash_table *ht, struct entry_space *es, unsigned nr
588 nr_buckets = roundup_pow_of_two(max(nr_entries / 4u, 16u)); 588 nr_buckets = roundup_pow_of_two(max(nr_entries / 4u, 16u));
589 ht->hash_bits = __ffs(nr_buckets); 589 ht->hash_bits = __ffs(nr_buckets);
590 590
591 ht->buckets = vmalloc(sizeof(*ht->buckets) * nr_buckets); 591 ht->buckets = vmalloc(array_size(nr_buckets, sizeof(*ht->buckets)));
592 if (!ht->buckets) 592 if (!ht->buckets)
593 return -ENOMEM; 593 return -ENOMEM;
594 594
diff --git a/drivers/md/dm-crypt.c b/drivers/md/dm-crypt.c
index 4939fbc34ff2..b61b069c33af 100644
--- a/drivers/md/dm-crypt.c
+++ b/drivers/md/dm-crypt.c
@@ -1878,8 +1878,9 @@ static int crypt_alloc_tfms_skcipher(struct crypt_config *cc, char *ciphermode)
1878 unsigned i; 1878 unsigned i;
1879 int err; 1879 int err;
1880 1880
1881 cc->cipher_tfm.tfms = kzalloc(cc->tfms_count * 1881 cc->cipher_tfm.tfms = kcalloc(cc->tfms_count,
1882 sizeof(struct crypto_skcipher *), GFP_KERNEL); 1882 sizeof(struct crypto_skcipher *),
1883 GFP_KERNEL);
1883 if (!cc->cipher_tfm.tfms) 1884 if (!cc->cipher_tfm.tfms)
1884 return -ENOMEM; 1885 return -ENOMEM;
1885 1886
diff --git a/drivers/md/dm-integrity.c b/drivers/md/dm-integrity.c
index fc68c7aaef8e..86438b2f10dd 100644
--- a/drivers/md/dm-integrity.c
+++ b/drivers/md/dm-integrity.c
@@ -2448,7 +2448,9 @@ static struct scatterlist **dm_integrity_alloc_journal_scatterlist(struct dm_int
2448 struct scatterlist **sl; 2448 struct scatterlist **sl;
2449 unsigned i; 2449 unsigned i;
2450 2450
2451 sl = kvmalloc(ic->journal_sections * sizeof(struct scatterlist *), GFP_KERNEL | __GFP_ZERO); 2451 sl = kvmalloc_array(ic->journal_sections,
2452 sizeof(struct scatterlist *),
2453 GFP_KERNEL | __GFP_ZERO);
2452 if (!sl) 2454 if (!sl)
2453 return NULL; 2455 return NULL;
2454 2456
@@ -2464,7 +2466,8 @@ static struct scatterlist **dm_integrity_alloc_journal_scatterlist(struct dm_int
2464 2466
2465 n_pages = (end_index - start_index + 1); 2467 n_pages = (end_index - start_index + 1);
2466 2468
2467 s = kvmalloc(n_pages * sizeof(struct scatterlist), GFP_KERNEL); 2469 s = kvmalloc_array(n_pages, sizeof(struct scatterlist),
2470 GFP_KERNEL);
2468 if (!s) { 2471 if (!s) {
2469 dm_integrity_free_journal_scatterlist(ic, sl); 2472 dm_integrity_free_journal_scatterlist(ic, sl);
2470 return NULL; 2473 return NULL;
@@ -2643,7 +2646,9 @@ static int create_journal(struct dm_integrity_c *ic, char **error)
2643 goto bad; 2646 goto bad;
2644 } 2647 }
2645 2648
2646 sg = kvmalloc((ic->journal_pages + 1) * sizeof(struct scatterlist), GFP_KERNEL); 2649 sg = kvmalloc_array(ic->journal_pages + 1,
2650 sizeof(struct scatterlist),
2651 GFP_KERNEL);
2647 if (!sg) { 2652 if (!sg) {
2648 *error = "Unable to allocate sg list"; 2653 *error = "Unable to allocate sg list";
2649 r = -ENOMEM; 2654 r = -ENOMEM;
@@ -2709,7 +2714,9 @@ static int create_journal(struct dm_integrity_c *ic, char **error)
2709 r = -ENOMEM; 2714 r = -ENOMEM;
2710 goto bad; 2715 goto bad;
2711 } 2716 }
2712 ic->sk_requests = kvmalloc(ic->journal_sections * sizeof(struct skcipher_request *), GFP_KERNEL | __GFP_ZERO); 2717 ic->sk_requests = kvmalloc_array(ic->journal_sections,
2718 sizeof(struct skcipher_request *),
2719 GFP_KERNEL | __GFP_ZERO);
2713 if (!ic->sk_requests) { 2720 if (!ic->sk_requests) {
2714 *error = "Unable to allocate sk requests"; 2721 *error = "Unable to allocate sk requests";
2715 r = -ENOMEM; 2722 r = -ENOMEM;
@@ -2743,7 +2750,8 @@ static int create_journal(struct dm_integrity_c *ic, char **error)
2743 r = -ENOMEM; 2750 r = -ENOMEM;
2744 goto bad; 2751 goto bad;
2745 } 2752 }
2746 section_req->iv = kmalloc(ivsize * 2, GFP_KERNEL); 2753 section_req->iv = kmalloc_array(ivsize, 2,
2754 GFP_KERNEL);
2747 if (!section_req->iv) { 2755 if (!section_req->iv) {
2748 skcipher_request_free(section_req); 2756 skcipher_request_free(section_req);
2749 *error = "Unable to allocate iv"; 2757 *error = "Unable to allocate iv";
diff --git a/drivers/md/dm-region-hash.c b/drivers/md/dm-region-hash.c
index c832ec398f02..1f760451e6f4 100644
--- a/drivers/md/dm-region-hash.c
+++ b/drivers/md/dm-region-hash.c
@@ -203,7 +203,7 @@ struct dm_region_hash *dm_region_hash_create(
203 rh->shift = RH_HASH_SHIFT; 203 rh->shift = RH_HASH_SHIFT;
204 rh->prime = RH_HASH_MULT; 204 rh->prime = RH_HASH_MULT;
205 205
206 rh->buckets = vmalloc(nr_buckets * sizeof(*rh->buckets)); 206 rh->buckets = vmalloc(array_size(nr_buckets, sizeof(*rh->buckets)));
207 if (!rh->buckets) { 207 if (!rh->buckets) {
208 DMERR("unable to allocate region hash bucket memory"); 208 DMERR("unable to allocate region hash bucket memory");
209 kfree(rh); 209 kfree(rh);
diff --git a/drivers/md/dm-snap.c b/drivers/md/dm-snap.c
index f745404da721..97de7a7334d4 100644
--- a/drivers/md/dm-snap.c
+++ b/drivers/md/dm-snap.c
@@ -326,8 +326,8 @@ static int init_origin_hash(void)
326{ 326{
327 int i; 327 int i;
328 328
329 _origins = kmalloc(ORIGIN_HASH_SIZE * sizeof(struct list_head), 329 _origins = kmalloc_array(ORIGIN_HASH_SIZE, sizeof(struct list_head),
330 GFP_KERNEL); 330 GFP_KERNEL);
331 if (!_origins) { 331 if (!_origins) {
332 DMERR("unable to allocate memory for _origins"); 332 DMERR("unable to allocate memory for _origins");
333 return -ENOMEM; 333 return -ENOMEM;
@@ -335,8 +335,9 @@ static int init_origin_hash(void)
335 for (i = 0; i < ORIGIN_HASH_SIZE; i++) 335 for (i = 0; i < ORIGIN_HASH_SIZE; i++)
336 INIT_LIST_HEAD(_origins + i); 336 INIT_LIST_HEAD(_origins + i);
337 337
338 _dm_origins = kmalloc(ORIGIN_HASH_SIZE * sizeof(struct list_head), 338 _dm_origins = kmalloc_array(ORIGIN_HASH_SIZE,
339 GFP_KERNEL); 339 sizeof(struct list_head),
340 GFP_KERNEL);
340 if (!_dm_origins) { 341 if (!_dm_origins) {
341 DMERR("unable to allocate memory for _dm_origins"); 342 DMERR("unable to allocate memory for _dm_origins");
342 kfree(_origins); 343 kfree(_origins);
diff --git a/drivers/md/dm-stats.c b/drivers/md/dm-stats.c
index 56059fb56e2d..21de30b4e2a1 100644
--- a/drivers/md/dm-stats.c
+++ b/drivers/md/dm-stats.c
@@ -915,7 +915,9 @@ static int parse_histogram(const char *h, unsigned *n_histogram_entries,
915 if (*q == ',') 915 if (*q == ',')
916 (*n_histogram_entries)++; 916 (*n_histogram_entries)++;
917 917
918 *histogram_boundaries = kmalloc(*n_histogram_entries * sizeof(unsigned long long), GFP_KERNEL); 918 *histogram_boundaries = kmalloc_array(*n_histogram_entries,
919 sizeof(unsigned long long),
920 GFP_KERNEL);
919 if (!*histogram_boundaries) 921 if (!*histogram_boundaries)
920 return -ENOMEM; 922 return -ENOMEM;
921 923
diff --git a/drivers/md/dm-switch.c b/drivers/md/dm-switch.c
index 7924a6a33ddc..fae35caf3672 100644
--- a/drivers/md/dm-switch.c
+++ b/drivers/md/dm-switch.c
@@ -114,7 +114,8 @@ static int alloc_region_table(struct dm_target *ti, unsigned nr_paths)
114 return -EINVAL; 114 return -EINVAL;
115 } 115 }
116 116
117 sctx->region_table = vmalloc(nr_slots * sizeof(region_table_slot_t)); 117 sctx->region_table = vmalloc(array_size(nr_slots,
118 sizeof(region_table_slot_t)));
118 if (!sctx->region_table) { 119 if (!sctx->region_table) {
119 ti->error = "Cannot allocate region table"; 120 ti->error = "Cannot allocate region table";
120 return -ENOMEM; 121 return -ENOMEM;
diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c
index caa51dd351b6..938766794c2e 100644
--- a/drivers/md/dm-table.c
+++ b/drivers/md/dm-table.c
@@ -561,7 +561,7 @@ static char **realloc_argv(unsigned *size, char **old_argv)
561 new_size = 8; 561 new_size = 8;
562 gfp = GFP_NOIO; 562 gfp = GFP_NOIO;
563 } 563 }
564 argv = kmalloc(new_size * sizeof(*argv), gfp); 564 argv = kmalloc_array(new_size, sizeof(*argv), gfp);
565 if (argv) { 565 if (argv) {
566 memcpy(argv, old_argv, *size * sizeof(*argv)); 566 memcpy(argv, old_argv, *size * sizeof(*argv));
567 *size = new_size; 567 *size = new_size;
diff --git a/drivers/md/dm-thin.c b/drivers/md/dm-thin.c
index 6cf9c9364103..7945238df1c0 100644
--- a/drivers/md/dm-thin.c
+++ b/drivers/md/dm-thin.c
@@ -2940,7 +2940,9 @@ static struct pool *pool_create(struct mapped_device *pool_md,
2940 goto bad_mapping_pool; 2940 goto bad_mapping_pool;
2941 } 2941 }
2942 2942
2943 pool->cell_sort_array = vmalloc(sizeof(*pool->cell_sort_array) * CELL_SORT_ARRAY_SIZE); 2943 pool->cell_sort_array =
2944 vmalloc(array_size(CELL_SORT_ARRAY_SIZE,
2945 sizeof(*pool->cell_sort_array)));
2944 if (!pool->cell_sort_array) { 2946 if (!pool->cell_sort_array) {
2945 *error = "Error allocating cell sort array"; 2947 *error = "Error allocating cell sort array";
2946 err_p = ERR_PTR(-ENOMEM); 2948 err_p = ERR_PTR(-ENOMEM);
diff --git a/drivers/md/dm-verity-target.c b/drivers/md/dm-verity-target.c
index fc893f636a98..12decdbd722d 100644
--- a/drivers/md/dm-verity-target.c
+++ b/drivers/md/dm-verity-target.c
@@ -797,8 +797,9 @@ static int verity_alloc_most_once(struct dm_verity *v)
797 return -E2BIG; 797 return -E2BIG;
798 } 798 }
799 799
800 v->validated_blocks = kvzalloc(BITS_TO_LONGS(v->data_blocks) * 800 v->validated_blocks = kvcalloc(BITS_TO_LONGS(v->data_blocks),
801 sizeof(unsigned long), GFP_KERNEL); 801 sizeof(unsigned long),
802 GFP_KERNEL);
802 if (!v->validated_blocks) { 803 if (!v->validated_blocks) {
803 ti->error = "failed to allocate bitset for check_at_most_once"; 804 ti->error = "failed to allocate bitset for check_at_most_once";
804 return -ENOMEM; 805 return -ENOMEM;
diff --git a/drivers/md/md-bitmap.c b/drivers/md/md-bitmap.c
index 239c7bb3929b..f983c3fdf204 100644
--- a/drivers/md/md-bitmap.c
+++ b/drivers/md/md-bitmap.c
@@ -789,8 +789,8 @@ static int bitmap_storage_alloc(struct bitmap_storage *store,
789 num_pages = DIV_ROUND_UP(bytes, PAGE_SIZE); 789 num_pages = DIV_ROUND_UP(bytes, PAGE_SIZE);
790 offset = slot_number * num_pages; 790 offset = slot_number * num_pages;
791 791
792 store->filemap = kmalloc(sizeof(struct page *) 792 store->filemap = kmalloc_array(num_pages, sizeof(struct page *),
793 * num_pages, GFP_KERNEL); 793 GFP_KERNEL);
794 if (!store->filemap) 794 if (!store->filemap)
795 return -ENOMEM; 795 return -ENOMEM;
796 796
@@ -2117,7 +2117,7 @@ int bitmap_resize(struct bitmap *bitmap, sector_t blocks,
2117 2117
2118 pages = DIV_ROUND_UP(chunks, PAGE_COUNTER_RATIO); 2118 pages = DIV_ROUND_UP(chunks, PAGE_COUNTER_RATIO);
2119 2119
2120 new_bp = kzalloc(pages * sizeof(*new_bp), GFP_KERNEL); 2120 new_bp = kcalloc(pages, sizeof(*new_bp), GFP_KERNEL);
2121 ret = -ENOMEM; 2121 ret = -ENOMEM;
2122 if (!new_bp) { 2122 if (!new_bp) {
2123 bitmap_file_unmap(&store); 2123 bitmap_file_unmap(&store);
diff --git a/drivers/md/md-cluster.c b/drivers/md/md-cluster.c
index 79bfbc840385..021cbf9ef1bf 100644
--- a/drivers/md/md-cluster.c
+++ b/drivers/md/md-cluster.c
@@ -1380,9 +1380,9 @@ static int lock_all_bitmaps(struct mddev *mddev)
1380 char str[64]; 1380 char str[64];
1381 struct md_cluster_info *cinfo = mddev->cluster_info; 1381 struct md_cluster_info *cinfo = mddev->cluster_info;
1382 1382
1383 cinfo->other_bitmap_lockres = kzalloc((mddev->bitmap_info.nodes - 1) * 1383 cinfo->other_bitmap_lockres =
1384 sizeof(struct dlm_lock_resource *), 1384 kcalloc(mddev->bitmap_info.nodes - 1,
1385 GFP_KERNEL); 1385 sizeof(struct dlm_lock_resource *), GFP_KERNEL);
1386 if (!cinfo->other_bitmap_lockres) { 1386 if (!cinfo->other_bitmap_lockres) {
1387 pr_err("md: can't alloc mem for other bitmap locks\n"); 1387 pr_err("md: can't alloc mem for other bitmap locks\n");
1388 return 0; 1388 return 0;
diff --git a/drivers/md/md-multipath.c b/drivers/md/md-multipath.c
index f71fcdb9b39c..881487de1e25 100644
--- a/drivers/md/md-multipath.c
+++ b/drivers/md/md-multipath.c
@@ -399,7 +399,8 @@ static int multipath_run (struct mddev *mddev)
399 if (!conf) 399 if (!conf)
400 goto out; 400 goto out;
401 401
402 conf->multipaths = kzalloc(sizeof(struct multipath_info)*mddev->raid_disks, 402 conf->multipaths = kcalloc(mddev->raid_disks,
403 sizeof(struct multipath_info),
403 GFP_KERNEL); 404 GFP_KERNEL);
404 if (!conf->multipaths) 405 if (!conf->multipaths)
405 goto out_free_conf; 406 goto out_free_conf;
diff --git a/drivers/md/raid0.c b/drivers/md/raid0.c
index 65ae47a02218..ac1cffd2a09b 100644
--- a/drivers/md/raid0.c
+++ b/drivers/md/raid0.c
@@ -159,12 +159,14 @@ static int create_strip_zones(struct mddev *mddev, struct r0conf **private_conf)
159 } 159 }
160 160
161 err = -ENOMEM; 161 err = -ENOMEM;
162 conf->strip_zone = kzalloc(sizeof(struct strip_zone)* 162 conf->strip_zone = kcalloc(conf->nr_strip_zones,
163 conf->nr_strip_zones, GFP_KERNEL); 163 sizeof(struct strip_zone),
164 GFP_KERNEL);
164 if (!conf->strip_zone) 165 if (!conf->strip_zone)
165 goto abort; 166 goto abort;
166 conf->devlist = kzalloc(sizeof(struct md_rdev*)* 167 conf->devlist = kzalloc(array3_size(sizeof(struct md_rdev *),
167 conf->nr_strip_zones*mddev->raid_disks, 168 conf->nr_strip_zones,
169 mddev->raid_disks),
168 GFP_KERNEL); 170 GFP_KERNEL);
169 if (!conf->devlist) 171 if (!conf->devlist)
170 goto abort; 172 goto abort;
diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c
index 0b344d087581..8e05c1092aef 100644
--- a/drivers/md/raid1.c
+++ b/drivers/md/raid1.c
@@ -126,8 +126,8 @@ static void * r1buf_pool_alloc(gfp_t gfp_flags, void *data)
126 if (!r1_bio) 126 if (!r1_bio)
127 return NULL; 127 return NULL;
128 128
129 rps = kmalloc(sizeof(struct resync_pages) * pi->raid_disks, 129 rps = kmalloc_array(pi->raid_disks, sizeof(struct resync_pages),
130 gfp_flags); 130 gfp_flags);
131 if (!rps) 131 if (!rps)
132 goto out_free_r1bio; 132 goto out_free_r1bio;
133 133
@@ -2936,9 +2936,9 @@ static struct r1conf *setup_conf(struct mddev *mddev)
2936 if (!conf->barrier) 2936 if (!conf->barrier)
2937 goto abort; 2937 goto abort;
2938 2938
2939 conf->mirrors = kzalloc(sizeof(struct raid1_info) 2939 conf->mirrors = kzalloc(array3_size(sizeof(struct raid1_info),
2940 * mddev->raid_disks * 2, 2940 mddev->raid_disks, 2),
2941 GFP_KERNEL); 2941 GFP_KERNEL);
2942 if (!conf->mirrors) 2942 if (!conf->mirrors)
2943 goto abort; 2943 goto abort;
2944 2944
@@ -3241,7 +3241,8 @@ static int raid1_reshape(struct mddev *mddev)
3241 kfree(newpoolinfo); 3241 kfree(newpoolinfo);
3242 return ret; 3242 return ret;
3243 } 3243 }
3244 newmirrors = kzalloc(sizeof(struct raid1_info) * raid_disks * 2, 3244 newmirrors = kzalloc(array3_size(sizeof(struct raid1_info),
3245 raid_disks, 2),
3245 GFP_KERNEL); 3246 GFP_KERNEL);
3246 if (!newmirrors) { 3247 if (!newmirrors) {
3247 kfree(newpoolinfo); 3248 kfree(newpoolinfo);
diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c
index 1147ae59e3b6..478cf446827f 100644
--- a/drivers/md/raid10.c
+++ b/drivers/md/raid10.c
@@ -175,7 +175,7 @@ static void * r10buf_pool_alloc(gfp_t gfp_flags, void *data)
175 nalloc_rp = nalloc; 175 nalloc_rp = nalloc;
176 else 176 else
177 nalloc_rp = nalloc * 2; 177 nalloc_rp = nalloc * 2;
178 rps = kmalloc(sizeof(struct resync_pages) * nalloc_rp, gfp_flags); 178 rps = kmalloc_array(nalloc_rp, sizeof(struct resync_pages), gfp_flags);
179 if (!rps) 179 if (!rps)
180 goto out_free_r10bio; 180 goto out_free_r10bio;
181 181
@@ -3688,8 +3688,8 @@ static struct r10conf *setup_conf(struct mddev *mddev)
3688 goto out; 3688 goto out;
3689 3689
3690 /* FIXME calc properly */ 3690 /* FIXME calc properly */
3691 conf->mirrors = kzalloc(sizeof(struct raid10_info)*(mddev->raid_disks + 3691 conf->mirrors = kcalloc(mddev->raid_disks + max(0, -mddev->delta_disks),
3692 max(0,-mddev->delta_disks)), 3692 sizeof(struct raid10_info),
3693 GFP_KERNEL); 3693 GFP_KERNEL);
3694 if (!conf->mirrors) 3694 if (!conf->mirrors)
3695 goto out; 3695 goto out;
@@ -4129,11 +4129,10 @@ static int raid10_check_reshape(struct mddev *mddev)
4129 conf->mirrors_new = NULL; 4129 conf->mirrors_new = NULL;
4130 if (mddev->delta_disks > 0) { 4130 if (mddev->delta_disks > 0) {
4131 /* allocate new 'mirrors' list */ 4131 /* allocate new 'mirrors' list */
4132 conf->mirrors_new = kzalloc( 4132 conf->mirrors_new =
4133 sizeof(struct raid10_info) 4133 kcalloc(mddev->raid_disks + mddev->delta_disks,
4134 *(mddev->raid_disks + 4134 sizeof(struct raid10_info),
4135 mddev->delta_disks), 4135 GFP_KERNEL);
4136 GFP_KERNEL);
4137 if (!conf->mirrors_new) 4136 if (!conf->mirrors_new)
4138 return -ENOMEM; 4137 return -ENOMEM;
4139 } 4138 }
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
index 73489446bbcb..2031506a0ecd 100644
--- a/drivers/md/raid5.c
+++ b/drivers/md/raid5.c
@@ -2396,7 +2396,7 @@ static int resize_stripes(struct r5conf *conf, int newsize)
2396 * is completely stalled, so now is a good time to resize 2396 * is completely stalled, so now is a good time to resize
2397 * conf->disks and the scribble region 2397 * conf->disks and the scribble region
2398 */ 2398 */
2399 ndisks = kzalloc(newsize * sizeof(struct disk_info), GFP_NOIO); 2399 ndisks = kcalloc(newsize, sizeof(struct disk_info), GFP_NOIO);
2400 if (ndisks) { 2400 if (ndisks) {
2401 for (i = 0; i < conf->pool_size; i++) 2401 for (i = 0; i < conf->pool_size; i++)
2402 ndisks[i] = conf->disks[i]; 2402 ndisks[i] = conf->disks[i];
@@ -6664,9 +6664,9 @@ static int alloc_thread_groups(struct r5conf *conf, int cnt,
6664 } 6664 }
6665 *group_cnt = num_possible_nodes(); 6665 *group_cnt = num_possible_nodes();
6666 size = sizeof(struct r5worker) * cnt; 6666 size = sizeof(struct r5worker) * cnt;
6667 workers = kzalloc(size * *group_cnt, GFP_NOIO); 6667 workers = kcalloc(size, *group_cnt, GFP_NOIO);
6668 *worker_groups = kzalloc(sizeof(struct r5worker_group) * 6668 *worker_groups = kcalloc(*group_cnt, sizeof(struct r5worker_group),
6669 *group_cnt, GFP_NOIO); 6669 GFP_NOIO);
6670 if (!*worker_groups || !workers) { 6670 if (!*worker_groups || !workers) {
6671 kfree(workers); 6671 kfree(workers);
6672 kfree(*worker_groups); 6672 kfree(*worker_groups);
@@ -6894,8 +6894,9 @@ static struct r5conf *setup_conf(struct mddev *mddev)
6894 goto abort; 6894 goto abort;
6895 INIT_LIST_HEAD(&conf->free_list); 6895 INIT_LIST_HEAD(&conf->free_list);
6896 INIT_LIST_HEAD(&conf->pending_list); 6896 INIT_LIST_HEAD(&conf->pending_list);
6897 conf->pending_data = kzalloc(sizeof(struct r5pending_data) * 6897 conf->pending_data = kcalloc(PENDING_IO_MAX,
6898 PENDING_IO_MAX, GFP_KERNEL); 6898 sizeof(struct r5pending_data),
6899 GFP_KERNEL);
6899 if (!conf->pending_data) 6900 if (!conf->pending_data)
6900 goto abort; 6901 goto abort;
6901 for (i = 0; i < PENDING_IO_MAX; i++) 6902 for (i = 0; i < PENDING_IO_MAX; i++)
@@ -6944,7 +6945,7 @@ static struct r5conf *setup_conf(struct mddev *mddev)
6944 conf->previous_raid_disks = mddev->raid_disks - mddev->delta_disks; 6945 conf->previous_raid_disks = mddev->raid_disks - mddev->delta_disks;
6945 max_disks = max(conf->raid_disks, conf->previous_raid_disks); 6946 max_disks = max(conf->raid_disks, conf->previous_raid_disks);
6946 6947
6947 conf->disks = kzalloc(max_disks * sizeof(struct disk_info), 6948 conf->disks = kcalloc(max_disks, sizeof(struct disk_info),
6948 GFP_KERNEL); 6949 GFP_KERNEL);
6949 6950
6950 if (!conf->disks) 6951 if (!conf->disks)
diff --git a/drivers/media/common/v4l2-tpg/v4l2-tpg-core.c b/drivers/media/common/v4l2-tpg/v4l2-tpg-core.c
index 9b64f4f354bf..abd4c788dffd 100644
--- a/drivers/media/common/v4l2-tpg/v4l2-tpg-core.c
+++ b/drivers/media/common/v4l2-tpg/v4l2-tpg-core.c
@@ -119,12 +119,14 @@ int tpg_alloc(struct tpg_data *tpg, unsigned max_w)
119 for (plane = 0; plane < TPG_MAX_PLANES; plane++) { 119 for (plane = 0; plane < TPG_MAX_PLANES; plane++) {
120 unsigned pixelsz = plane ? 2 : 4; 120 unsigned pixelsz = plane ? 2 : 4;
121 121
122 tpg->lines[pat][plane] = vzalloc(max_w * 2 * pixelsz); 122 tpg->lines[pat][plane] =
123 vzalloc(array3_size(max_w, 2, pixelsz));
123 if (!tpg->lines[pat][plane]) 124 if (!tpg->lines[pat][plane])
124 return -ENOMEM; 125 return -ENOMEM;
125 if (plane == 0) 126 if (plane == 0)
126 continue; 127 continue;
127 tpg->downsampled_lines[pat][plane] = vzalloc(max_w * 2 * pixelsz); 128 tpg->downsampled_lines[pat][plane] =
129 vzalloc(array3_size(max_w, 2, pixelsz));
128 if (!tpg->downsampled_lines[pat][plane]) 130 if (!tpg->downsampled_lines[pat][plane])
129 return -ENOMEM; 131 return -ENOMEM;
130 } 132 }
@@ -132,13 +134,16 @@ int tpg_alloc(struct tpg_data *tpg, unsigned max_w)
132 for (plane = 0; plane < TPG_MAX_PLANES; plane++) { 134 for (plane = 0; plane < TPG_MAX_PLANES; plane++) {
133 unsigned pixelsz = plane ? 2 : 4; 135 unsigned pixelsz = plane ? 2 : 4;
134 136
135 tpg->contrast_line[plane] = vzalloc(max_w * pixelsz); 137 tpg->contrast_line[plane] =
138 vzalloc(array_size(pixelsz, max_w));
136 if (!tpg->contrast_line[plane]) 139 if (!tpg->contrast_line[plane])
137 return -ENOMEM; 140 return -ENOMEM;
138 tpg->black_line[plane] = vzalloc(max_w * pixelsz); 141 tpg->black_line[plane] =
142 vzalloc(array_size(pixelsz, max_w));
139 if (!tpg->black_line[plane]) 143 if (!tpg->black_line[plane])
140 return -ENOMEM; 144 return -ENOMEM;
141 tpg->random_line[plane] = vzalloc(max_w * 2 * pixelsz); 145 tpg->random_line[plane] =
146 vzalloc(array3_size(max_w, 2, pixelsz));
142 if (!tpg->random_line[plane]) 147 if (!tpg->random_line[plane])
143 return -ENOMEM; 148 return -ENOMEM;
144 } 149 }
diff --git a/drivers/media/dvb-core/dmxdev.c b/drivers/media/dvb-core/dmxdev.c
index cb078d688c70..d548f98c7a67 100644
--- a/drivers/media/dvb-core/dmxdev.c
+++ b/drivers/media/dvb-core/dmxdev.c
@@ -1417,7 +1417,8 @@ int dvb_dmxdev_init(struct dmxdev *dmxdev, struct dvb_adapter *dvb_adapter)
1417 if (dmxdev->demux->open(dmxdev->demux) < 0) 1417 if (dmxdev->demux->open(dmxdev->demux) < 0)
1418 return -EUSERS; 1418 return -EUSERS;
1419 1419
1420 dmxdev->filter = vmalloc(dmxdev->filternum * sizeof(struct dmxdev_filter)); 1420 dmxdev->filter = vmalloc(array_size(sizeof(struct dmxdev_filter),
1421 dmxdev->filternum));
1421 if (!dmxdev->filter) 1422 if (!dmxdev->filter)
1422 return -ENOMEM; 1423 return -ENOMEM;
1423 1424
diff --git a/drivers/media/dvb-core/dvb_demux.c b/drivers/media/dvb-core/dvb_demux.c
index f45091246bdc..39a2c6ccf31d 100644
--- a/drivers/media/dvb-core/dvb_demux.c
+++ b/drivers/media/dvb-core/dvb_demux.c
@@ -1247,12 +1247,14 @@ int dvb_dmx_init(struct dvb_demux *dvbdemux)
1247 1247
1248 dvbdemux->cnt_storage = NULL; 1248 dvbdemux->cnt_storage = NULL;
1249 dvbdemux->users = 0; 1249 dvbdemux->users = 0;
1250 dvbdemux->filter = vmalloc(dvbdemux->filternum * sizeof(struct dvb_demux_filter)); 1250 dvbdemux->filter = vmalloc(array_size(sizeof(struct dvb_demux_filter),
1251 dvbdemux->filternum));
1251 1252
1252 if (!dvbdemux->filter) 1253 if (!dvbdemux->filter)
1253 return -ENOMEM; 1254 return -ENOMEM;
1254 1255
1255 dvbdemux->feed = vmalloc(dvbdemux->feednum * sizeof(struct dvb_demux_feed)); 1256 dvbdemux->feed = vmalloc(array_size(sizeof(struct dvb_demux_feed),
1257 dvbdemux->feednum));
1256 if (!dvbdemux->feed) { 1258 if (!dvbdemux->feed) {
1257 vfree(dvbdemux->filter); 1259 vfree(dvbdemux->filter);
1258 dvbdemux->filter = NULL; 1260 dvbdemux->filter = NULL;
diff --git a/drivers/media/dvb-frontends/dib7000p.c b/drivers/media/dvb-frontends/dib7000p.c
index 902af482448e..5a8dbc0b25fb 100644
--- a/drivers/media/dvb-frontends/dib7000p.c
+++ b/drivers/media/dvb-frontends/dib7000p.c
@@ -2018,10 +2018,10 @@ static int dib7000pc_detection(struct i2c_adapter *i2c_adap)
2018 }; 2018 };
2019 int ret = 0; 2019 int ret = 0;
2020 2020
2021 tx = kzalloc(2*sizeof(u8), GFP_KERNEL); 2021 tx = kzalloc(2, GFP_KERNEL);
2022 if (!tx) 2022 if (!tx)
2023 return -ENOMEM; 2023 return -ENOMEM;
2024 rx = kzalloc(2*sizeof(u8), GFP_KERNEL); 2024 rx = kzalloc(2, GFP_KERNEL);
2025 if (!rx) { 2025 if (!rx) {
2026 ret = -ENOMEM; 2026 ret = -ENOMEM;
2027 goto rx_memory_error; 2027 goto rx_memory_error;
diff --git a/drivers/media/dvb-frontends/dib8000.c b/drivers/media/dvb-frontends/dib8000.c
index 6f35173d2968..22eec8f65485 100644
--- a/drivers/media/dvb-frontends/dib8000.c
+++ b/drivers/media/dvb-frontends/dib8000.c
@@ -4271,12 +4271,12 @@ static int dib8000_i2c_enumeration(struct i2c_adapter *host, int no_of_demods,
4271 u8 new_addr = 0; 4271 u8 new_addr = 0;
4272 struct i2c_device client = {.adap = host }; 4272 struct i2c_device client = {.adap = host };
4273 4273
4274 client.i2c_write_buffer = kzalloc(4 * sizeof(u8), GFP_KERNEL); 4274 client.i2c_write_buffer = kzalloc(4, GFP_KERNEL);
4275 if (!client.i2c_write_buffer) { 4275 if (!client.i2c_write_buffer) {
4276 dprintk("%s: not enough memory\n", __func__); 4276 dprintk("%s: not enough memory\n", __func__);
4277 return -ENOMEM; 4277 return -ENOMEM;
4278 } 4278 }
4279 client.i2c_read_buffer = kzalloc(4 * sizeof(u8), GFP_KERNEL); 4279 client.i2c_read_buffer = kzalloc(4, GFP_KERNEL);
4280 if (!client.i2c_read_buffer) { 4280 if (!client.i2c_read_buffer) {
4281 dprintk("%s: not enough memory\n", __func__); 4281 dprintk("%s: not enough memory\n", __func__);
4282 ret = -ENOMEM; 4282 ret = -ENOMEM;
diff --git a/drivers/media/dvb-frontends/dib9000.c b/drivers/media/dvb-frontends/dib9000.c
index f9289f488de7..b8edb55696bb 100644
--- a/drivers/media/dvb-frontends/dib9000.c
+++ b/drivers/media/dvb-frontends/dib9000.c
@@ -2381,12 +2381,12 @@ int dib9000_i2c_enumeration(struct i2c_adapter *i2c, int no_of_demods, u8 defaul
2381 u8 new_addr = 0; 2381 u8 new_addr = 0;
2382 struct i2c_device client = {.i2c_adap = i2c }; 2382 struct i2c_device client = {.i2c_adap = i2c };
2383 2383
2384 client.i2c_write_buffer = kzalloc(4 * sizeof(u8), GFP_KERNEL); 2384 client.i2c_write_buffer = kzalloc(4, GFP_KERNEL);
2385 if (!client.i2c_write_buffer) { 2385 if (!client.i2c_write_buffer) {
2386 dprintk("%s: not enough memory\n", __func__); 2386 dprintk("%s: not enough memory\n", __func__);
2387 return -ENOMEM; 2387 return -ENOMEM;
2388 } 2388 }
2389 client.i2c_read_buffer = kzalloc(4 * sizeof(u8), GFP_KERNEL); 2389 client.i2c_read_buffer = kzalloc(4, GFP_KERNEL);
2390 if (!client.i2c_read_buffer) { 2390 if (!client.i2c_read_buffer) {
2391 dprintk("%s: not enough memory\n", __func__); 2391 dprintk("%s: not enough memory\n", __func__);
2392 ret = -ENOMEM; 2392 ret = -ENOMEM;
diff --git a/drivers/media/i2c/s5k5baf.c b/drivers/media/i2c/s5k5baf.c
index ff46d2c96cea..5007c9659342 100644
--- a/drivers/media/i2c/s5k5baf.c
+++ b/drivers/media/i2c/s5k5baf.c
@@ -373,7 +373,7 @@ static int s5k5baf_fw_parse(struct device *dev, struct s5k5baf_fw **fw,
373 data += S5K5BAG_FW_TAG_LEN; 373 data += S5K5BAG_FW_TAG_LEN;
374 count -= S5K5BAG_FW_TAG_LEN; 374 count -= S5K5BAG_FW_TAG_LEN;
375 375
376 d = devm_kzalloc(dev, count * sizeof(u16), GFP_KERNEL); 376 d = devm_kcalloc(dev, count, sizeof(u16), GFP_KERNEL);
377 if (!d) 377 if (!d)
378 return -ENOMEM; 378 return -ENOMEM;
379 379
diff --git a/drivers/media/pci/bt8xx/bttv-risc.c b/drivers/media/pci/bt8xx/bttv-risc.c
index 6a6be0b49f70..74aff6877d9c 100644
--- a/drivers/media/pci/bt8xx/bttv-risc.c
+++ b/drivers/media/pci/bt8xx/bttv-risc.c
@@ -256,7 +256,8 @@ bttv_risc_overlay(struct bttv *btv, struct btcx_riscmem *risc,
256 u32 addr; 256 u32 addr;
257 257
258 /* skip list for window clipping */ 258 /* skip list for window clipping */
259 if (NULL == (skips = kmalloc(sizeof(*skips) * ov->nclips,GFP_KERNEL))) 259 skips = kmalloc_array(ov->nclips, sizeof(*skips),GFP_KERNEL);
260 if (NULL == skips)
260 return -ENOMEM; 261 return -ENOMEM;
261 262
262 /* estimate risc mem: worst case is (1.5*clip+1) * lines instructions 263 /* estimate risc mem: worst case is (1.5*clip+1) * lines instructions
diff --git a/drivers/media/pci/cx23885/cx23885-alsa.c b/drivers/media/pci/cx23885/cx23885-alsa.c
index 20b3cb17f97f..db1e8ff35474 100644
--- a/drivers/media/pci/cx23885/cx23885-alsa.c
+++ b/drivers/media/pci/cx23885/cx23885-alsa.c
@@ -95,7 +95,7 @@ static int cx23885_alsa_dma_init(struct cx23885_audio_dev *chip, int nr_pages)
95 memset(buf->vaddr, 0, nr_pages << PAGE_SHIFT); 95 memset(buf->vaddr, 0, nr_pages << PAGE_SHIFT);
96 buf->nr_pages = nr_pages; 96 buf->nr_pages = nr_pages;
97 97
98 buf->sglist = vzalloc(buf->nr_pages * sizeof(*buf->sglist)); 98 buf->sglist = vzalloc(array_size(sizeof(*buf->sglist), buf->nr_pages));
99 if (NULL == buf->sglist) 99 if (NULL == buf->sglist)
100 goto vzalloc_err; 100 goto vzalloc_err;
101 101
diff --git a/drivers/media/pci/cx25821/cx25821-alsa.c b/drivers/media/pci/cx25821/cx25821-alsa.c
index a45bf0331eeb..ef6380651c10 100644
--- a/drivers/media/pci/cx25821/cx25821-alsa.c
+++ b/drivers/media/pci/cx25821/cx25821-alsa.c
@@ -159,7 +159,7 @@ static int cx25821_alsa_dma_init(struct cx25821_audio_dev *chip, int nr_pages)
159 memset(buf->vaddr, 0, nr_pages << PAGE_SHIFT); 159 memset(buf->vaddr, 0, nr_pages << PAGE_SHIFT);
160 buf->nr_pages = nr_pages; 160 buf->nr_pages = nr_pages;
161 161
162 buf->sglist = vzalloc(buf->nr_pages * sizeof(*buf->sglist)); 162 buf->sglist = vzalloc(array_size(sizeof(*buf->sglist), buf->nr_pages));
163 if (NULL == buf->sglist) 163 if (NULL == buf->sglist)
164 goto vzalloc_err; 164 goto vzalloc_err;
165 165
diff --git a/drivers/media/pci/cx88/cx88-alsa.c b/drivers/media/pci/cx88/cx88-alsa.c
index 8a28fda703a2..e5c3387cd1e8 100644
--- a/drivers/media/pci/cx88/cx88-alsa.c
+++ b/drivers/media/pci/cx88/cx88-alsa.c
@@ -298,7 +298,7 @@ static int cx88_alsa_dma_init(struct cx88_audio_dev *chip, int nr_pages)
298 memset(buf->vaddr, 0, nr_pages << PAGE_SHIFT); 298 memset(buf->vaddr, 0, nr_pages << PAGE_SHIFT);
299 buf->nr_pages = nr_pages; 299 buf->nr_pages = nr_pages;
300 300
301 buf->sglist = vzalloc(buf->nr_pages * sizeof(*buf->sglist)); 301 buf->sglist = vzalloc(array_size(sizeof(*buf->sglist), buf->nr_pages));
302 if (!buf->sglist) 302 if (!buf->sglist)
303 goto vzalloc_err; 303 goto vzalloc_err;
304 304
diff --git a/drivers/media/pci/ivtv/ivtvfb.c b/drivers/media/pci/ivtv/ivtvfb.c
index 8e62b8be6529..b19058e36853 100644
--- a/drivers/media/pci/ivtv/ivtvfb.c
+++ b/drivers/media/pci/ivtv/ivtvfb.c
@@ -1077,7 +1077,7 @@ static int ivtvfb_init_vidmode(struct ivtv *itv)
1077 1077
1078 /* Allocate the pseudo palette */ 1078 /* Allocate the pseudo palette */
1079 oi->ivtvfb_info.pseudo_palette = 1079 oi->ivtvfb_info.pseudo_palette =
1080 kmalloc(sizeof(u32) * 16, GFP_KERNEL|__GFP_NOWARN); 1080 kmalloc_array(16, sizeof(u32), GFP_KERNEL|__GFP_NOWARN);
1081 1081
1082 if (!oi->ivtvfb_info.pseudo_palette) { 1082 if (!oi->ivtvfb_info.pseudo_palette) {
1083 IVTVFB_ERR("abort, unable to alloc pseudo palette\n"); 1083 IVTVFB_ERR("abort, unable to alloc pseudo palette\n");
diff --git a/drivers/media/pci/meye/meye.c b/drivers/media/pci/meye/meye.c
index dedcdb573427..8001d3e9134e 100644
--- a/drivers/media/pci/meye/meye.c
+++ b/drivers/media/pci/meye/meye.c
@@ -1625,7 +1625,7 @@ static int meye_probe(struct pci_dev *pcidev, const struct pci_device_id *ent)
1625 ret = -ENOMEM; 1625 ret = -ENOMEM;
1626 meye.mchip_dev = pcidev; 1626 meye.mchip_dev = pcidev;
1627 1627
1628 meye.grab_temp = vmalloc(MCHIP_NB_PAGES_MJPEG * PAGE_SIZE); 1628 meye.grab_temp = vmalloc(array_size(PAGE_SIZE, MCHIP_NB_PAGES_MJPEG));
1629 if (!meye.grab_temp) 1629 if (!meye.grab_temp)
1630 goto outvmalloc; 1630 goto outvmalloc;
1631 1631
diff --git a/drivers/media/pci/pt1/pt1.c b/drivers/media/pci/pt1/pt1.c
index 5708f69622cc..fda969a85684 100644
--- a/drivers/media/pci/pt1/pt1.c
+++ b/drivers/media/pci/pt1/pt1.c
@@ -615,7 +615,7 @@ static int pt1_init_tables(struct pt1 *pt1)
615 if (!pt1_nr_tables) 615 if (!pt1_nr_tables)
616 return 0; 616 return 0;
617 617
618 tables = vmalloc(sizeof(struct pt1_table) * pt1_nr_tables); 618 tables = vmalloc(array_size(pt1_nr_tables, sizeof(struct pt1_table)));
619 if (tables == NULL) 619 if (tables == NULL)
620 return -ENOMEM; 620 return -ENOMEM;
621 621
diff --git a/drivers/media/pci/saa7134/saa7134-alsa.c b/drivers/media/pci/saa7134/saa7134-alsa.c
index 72311445d13d..b90cfde6e301 100644
--- a/drivers/media/pci/saa7134/saa7134-alsa.c
+++ b/drivers/media/pci/saa7134/saa7134-alsa.c
@@ -279,7 +279,7 @@ static int saa7134_alsa_dma_init(struct saa7134_dev *dev, int nr_pages)
279 memset(dma->vaddr, 0, nr_pages << PAGE_SHIFT); 279 memset(dma->vaddr, 0, nr_pages << PAGE_SHIFT);
280 dma->nr_pages = nr_pages; 280 dma->nr_pages = nr_pages;
281 281
282 dma->sglist = vzalloc(dma->nr_pages * sizeof(*dma->sglist)); 282 dma->sglist = vzalloc(array_size(sizeof(*dma->sglist), dma->nr_pages));
283 if (NULL == dma->sglist) 283 if (NULL == dma->sglist)
284 goto vzalloc_err; 284 goto vzalloc_err;
285 285
diff --git a/drivers/media/pci/ttpci/av7110_ipack.c b/drivers/media/pci/ttpci/av7110_ipack.c
index 5aff26574fe1..ec528fae7333 100644
--- a/drivers/media/pci/ttpci/av7110_ipack.c
+++ b/drivers/media/pci/ttpci/av7110_ipack.c
@@ -24,7 +24,7 @@ void av7110_ipack_reset(struct ipack *p)
24int av7110_ipack_init(struct ipack *p, int size, 24int av7110_ipack_init(struct ipack *p, int size,
25 void (*func)(u8 *buf, int size, void *priv)) 25 void (*func)(u8 *buf, int size, void *priv))
26{ 26{
27 if (!(p->buf = vmalloc(size*sizeof(u8)))) { 27 if (!(p->buf = vmalloc(size))) {
28 printk(KERN_WARNING "Couldn't allocate memory for ipack\n"); 28 printk(KERN_WARNING "Couldn't allocate memory for ipack\n");
29 return -ENOMEM; 29 return -ENOMEM;
30 } 30 }
diff --git a/drivers/media/platform/am437x/am437x-vpfe.c b/drivers/media/platform/am437x/am437x-vpfe.c
index 58ebc2220d0e..b05738a95e55 100644
--- a/drivers/media/platform/am437x/am437x-vpfe.c
+++ b/drivers/media/platform/am437x/am437x-vpfe.c
@@ -2586,8 +2586,10 @@ static int vpfe_probe(struct platform_device *pdev)
2586 2586
2587 pm_runtime_put_sync(&pdev->dev); 2587 pm_runtime_put_sync(&pdev->dev);
2588 2588
2589 vpfe->sd = devm_kzalloc(&pdev->dev, sizeof(struct v4l2_subdev *) * 2589 vpfe->sd = devm_kcalloc(&pdev->dev,
2590 ARRAY_SIZE(vpfe->cfg->asd), GFP_KERNEL); 2590 ARRAY_SIZE(vpfe->cfg->asd),
2591 sizeof(struct v4l2_subdev *),
2592 GFP_KERNEL);
2591 if (!vpfe->sd) { 2593 if (!vpfe->sd) {
2592 ret = -ENOMEM; 2594 ret = -ENOMEM;
2593 goto probe_out_v4l2_unregister; 2595 goto probe_out_v4l2_unregister;
diff --git a/drivers/media/platform/davinci/vpif_capture.c b/drivers/media/platform/davinci/vpif_capture.c
index 9364cdf62f54..a96f53ce8088 100644
--- a/drivers/media/platform/davinci/vpif_capture.c
+++ b/drivers/media/platform/davinci/vpif_capture.c
@@ -1528,8 +1528,10 @@ vpif_capture_get_pdata(struct platform_device *pdev)
1528 if (!pdata) 1528 if (!pdata)
1529 return NULL; 1529 return NULL;
1530 pdata->subdev_info = 1530 pdata->subdev_info =
1531 devm_kzalloc(&pdev->dev, sizeof(*pdata->subdev_info) * 1531 devm_kcalloc(&pdev->dev,
1532 VPIF_CAPTURE_NUM_CHANNELS, GFP_KERNEL); 1532 VPIF_CAPTURE_NUM_CHANNELS,
1533 sizeof(*pdata->subdev_info),
1534 GFP_KERNEL);
1533 1535
1534 if (!pdata->subdev_info) 1536 if (!pdata->subdev_info)
1535 return NULL; 1537 return NULL;
@@ -1546,9 +1548,9 @@ vpif_capture_get_pdata(struct platform_device *pdev)
1546 1548
1547 sdinfo = &pdata->subdev_info[i]; 1549 sdinfo = &pdata->subdev_info[i];
1548 chan = &pdata->chan_config[i]; 1550 chan = &pdata->chan_config[i];
1549 chan->inputs = devm_kzalloc(&pdev->dev, 1551 chan->inputs = devm_kcalloc(&pdev->dev,
1550 sizeof(*chan->inputs) *
1551 VPIF_CAPTURE_NUM_CHANNELS, 1552 VPIF_CAPTURE_NUM_CHANNELS,
1553 sizeof(*chan->inputs),
1552 GFP_KERNEL); 1554 GFP_KERNEL);
1553 if (!chan->inputs) 1555 if (!chan->inputs)
1554 return NULL; 1556 return NULL;
diff --git a/drivers/media/platform/qcom/camss-8x16/camss-csid.c b/drivers/media/platform/qcom/camss-8x16/camss-csid.c
index 64df82817de3..226f36ef7419 100644
--- a/drivers/media/platform/qcom/camss-8x16/camss-csid.c
+++ b/drivers/media/platform/qcom/camss-8x16/camss-csid.c
@@ -845,7 +845,7 @@ int msm_csid_subdev_init(struct csid_device *csid,
845 while (res->clock[csid->nclocks]) 845 while (res->clock[csid->nclocks])
846 csid->nclocks++; 846 csid->nclocks++;
847 847
848 csid->clock = devm_kzalloc(dev, csid->nclocks * sizeof(*csid->clock), 848 csid->clock = devm_kcalloc(dev, csid->nclocks, sizeof(*csid->clock),
849 GFP_KERNEL); 849 GFP_KERNEL);
850 if (!csid->clock) 850 if (!csid->clock)
851 return -ENOMEM; 851 return -ENOMEM;
@@ -868,8 +868,10 @@ int msm_csid_subdev_init(struct csid_device *csid,
868 continue; 868 continue;
869 } 869 }
870 870
871 clock->freq = devm_kzalloc(dev, clock->nfreqs * 871 clock->freq = devm_kcalloc(dev,
872 sizeof(*clock->freq), GFP_KERNEL); 872 clock->nfreqs,
873 sizeof(*clock->freq),
874 GFP_KERNEL);
873 if (!clock->freq) 875 if (!clock->freq)
874 return -ENOMEM; 876 return -ENOMEM;
875 877
diff --git a/drivers/media/platform/qcom/camss-8x16/camss-csiphy.c b/drivers/media/platform/qcom/camss-8x16/camss-csiphy.c
index 072c6cf053f6..7e61caba6a2d 100644
--- a/drivers/media/platform/qcom/camss-8x16/camss-csiphy.c
+++ b/drivers/media/platform/qcom/camss-8x16/camss-csiphy.c
@@ -732,8 +732,9 @@ int msm_csiphy_subdev_init(struct csiphy_device *csiphy,
732 while (res->clock[csiphy->nclocks]) 732 while (res->clock[csiphy->nclocks])
733 csiphy->nclocks++; 733 csiphy->nclocks++;
734 734
735 csiphy->clock = devm_kzalloc(dev, csiphy->nclocks * 735 csiphy->clock = devm_kcalloc(dev,
736 sizeof(*csiphy->clock), GFP_KERNEL); 736 csiphy->nclocks, sizeof(*csiphy->clock),
737 GFP_KERNEL);
737 if (!csiphy->clock) 738 if (!csiphy->clock)
738 return -ENOMEM; 739 return -ENOMEM;
739 740
@@ -755,8 +756,10 @@ int msm_csiphy_subdev_init(struct csiphy_device *csiphy,
755 continue; 756 continue;
756 } 757 }
757 758
758 clock->freq = devm_kzalloc(dev, clock->nfreqs * 759 clock->freq = devm_kcalloc(dev,
759 sizeof(*clock->freq), GFP_KERNEL); 760 clock->nfreqs,
761 sizeof(*clock->freq),
762 GFP_KERNEL);
760 if (!clock->freq) 763 if (!clock->freq)
761 return -ENOMEM; 764 return -ENOMEM;
762 765
diff --git a/drivers/media/platform/qcom/camss-8x16/camss-ispif.c b/drivers/media/platform/qcom/camss-8x16/camss-ispif.c
index 24da529397b5..9d1af9353c1d 100644
--- a/drivers/media/platform/qcom/camss-8x16/camss-ispif.c
+++ b/drivers/media/platform/qcom/camss-8x16/camss-ispif.c
@@ -948,7 +948,8 @@ int msm_ispif_subdev_init(struct ispif_device *ispif,
948 while (res->clock[ispif->nclocks]) 948 while (res->clock[ispif->nclocks])
949 ispif->nclocks++; 949 ispif->nclocks++;
950 950
951 ispif->clock = devm_kzalloc(dev, ispif->nclocks * sizeof(*ispif->clock), 951 ispif->clock = devm_kcalloc(dev,
952 ispif->nclocks, sizeof(*ispif->clock),
952 GFP_KERNEL); 953 GFP_KERNEL);
953 if (!ispif->clock) 954 if (!ispif->clock)
954 return -ENOMEM; 955 return -ENOMEM;
@@ -968,8 +969,10 @@ int msm_ispif_subdev_init(struct ispif_device *ispif,
968 while (res->clock_for_reset[ispif->nclocks_for_reset]) 969 while (res->clock_for_reset[ispif->nclocks_for_reset])
969 ispif->nclocks_for_reset++; 970 ispif->nclocks_for_reset++;
970 971
971 ispif->clock_for_reset = devm_kzalloc(dev, ispif->nclocks_for_reset * 972 ispif->clock_for_reset = devm_kcalloc(dev,
972 sizeof(*ispif->clock_for_reset), GFP_KERNEL); 973 ispif->nclocks_for_reset,
974 sizeof(*ispif->clock_for_reset),
975 GFP_KERNEL);
973 if (!ispif->clock_for_reset) 976 if (!ispif->clock_for_reset)
974 return -ENOMEM; 977 return -ENOMEM;
975 978
diff --git a/drivers/media/platform/qcom/camss-8x16/camss-vfe.c b/drivers/media/platform/qcom/camss-8x16/camss-vfe.c
index 55232a912950..a6329a8a7c4a 100644
--- a/drivers/media/platform/qcom/camss-8x16/camss-vfe.c
+++ b/drivers/media/platform/qcom/camss-8x16/camss-vfe.c
@@ -2794,7 +2794,7 @@ int msm_vfe_subdev_init(struct vfe_device *vfe, const struct resources *res)
2794 while (res->clock[vfe->nclocks]) 2794 while (res->clock[vfe->nclocks])
2795 vfe->nclocks++; 2795 vfe->nclocks++;
2796 2796
2797 vfe->clock = devm_kzalloc(dev, vfe->nclocks * sizeof(*vfe->clock), 2797 vfe->clock = devm_kcalloc(dev, vfe->nclocks, sizeof(*vfe->clock),
2798 GFP_KERNEL); 2798 GFP_KERNEL);
2799 if (!vfe->clock) 2799 if (!vfe->clock)
2800 return -ENOMEM; 2800 return -ENOMEM;
@@ -2817,8 +2817,10 @@ int msm_vfe_subdev_init(struct vfe_device *vfe, const struct resources *res)
2817 continue; 2817 continue;
2818 } 2818 }
2819 2819
2820 clock->freq = devm_kzalloc(dev, clock->nfreqs * 2820 clock->freq = devm_kcalloc(dev,
2821 sizeof(*clock->freq), GFP_KERNEL); 2821 clock->nfreqs,
2822 sizeof(*clock->freq),
2823 GFP_KERNEL);
2822 if (!clock->freq) 2824 if (!clock->freq)
2823 return -ENOMEM; 2825 return -ENOMEM;
2824 2826
diff --git a/drivers/media/platform/qcom/camss-8x16/camss.c b/drivers/media/platform/qcom/camss-8x16/camss.c
index 05f06c98aa64..23fda6207a23 100644
--- a/drivers/media/platform/qcom/camss-8x16/camss.c
+++ b/drivers/media/platform/qcom/camss-8x16/camss.c
@@ -271,7 +271,8 @@ static int camss_of_parse_endpoint_node(struct device *dev,
271 lncfg->clk.pol = mipi_csi2->lane_polarities[0]; 271 lncfg->clk.pol = mipi_csi2->lane_polarities[0];
272 lncfg->num_data = mipi_csi2->num_data_lanes; 272 lncfg->num_data = mipi_csi2->num_data_lanes;
273 273
274 lncfg->data = devm_kzalloc(dev, lncfg->num_data * sizeof(*lncfg->data), 274 lncfg->data = devm_kcalloc(dev,
275 lncfg->num_data, sizeof(*lncfg->data),
275 GFP_KERNEL); 276 GFP_KERNEL);
276 if (!lncfg->data) 277 if (!lncfg->data)
277 return -ENOMEM; 278 return -ENOMEM;
diff --git a/drivers/media/platform/soc_camera/soc_camera.c b/drivers/media/platform/soc_camera/soc_camera.c
index 69f0d8e80bd8..66d613629167 100644
--- a/drivers/media/platform/soc_camera/soc_camera.c
+++ b/drivers/media/platform/soc_camera/soc_camera.c
@@ -481,7 +481,8 @@ static int soc_camera_init_user_formats(struct soc_camera_device *icd)
481 return -ENXIO; 481 return -ENXIO;
482 482
483 icd->user_formats = 483 icd->user_formats =
484 vmalloc(fmts * sizeof(struct soc_camera_format_xlate)); 484 vmalloc(array_size(fmts,
485 sizeof(struct soc_camera_format_xlate)));
485 if (!icd->user_formats) 486 if (!icd->user_formats)
486 return -ENOMEM; 487 return -ENOMEM;
487 488
diff --git a/drivers/media/platform/vivid/vivid-core.c b/drivers/media/platform/vivid/vivid-core.c
index 82ec216f2ad8..31db363602e5 100644
--- a/drivers/media/platform/vivid/vivid-core.c
+++ b/drivers/media/platform/vivid/vivid-core.c
@@ -844,10 +844,10 @@ static int vivid_create_instance(struct platform_device *pdev, int inst)
844 tpg_init(&dev->tpg, 640, 360); 844 tpg_init(&dev->tpg, 640, 360);
845 if (tpg_alloc(&dev->tpg, MAX_ZOOM * MAX_WIDTH)) 845 if (tpg_alloc(&dev->tpg, MAX_ZOOM * MAX_WIDTH))
846 goto free_dev; 846 goto free_dev;
847 dev->scaled_line = vzalloc(MAX_ZOOM * MAX_WIDTH); 847 dev->scaled_line = vzalloc(array_size(MAX_WIDTH, MAX_ZOOM));
848 if (!dev->scaled_line) 848 if (!dev->scaled_line)
849 goto free_dev; 849 goto free_dev;
850 dev->blended_line = vzalloc(MAX_ZOOM * MAX_WIDTH); 850 dev->blended_line = vzalloc(array_size(MAX_WIDTH, MAX_ZOOM));
851 if (!dev->blended_line) 851 if (!dev->blended_line)
852 goto free_dev; 852 goto free_dev;
853 853
@@ -859,8 +859,9 @@ static int vivid_create_instance(struct platform_device *pdev, int inst)
859 /* create a string array containing the names of all the preset timings */ 859 /* create a string array containing the names of all the preset timings */
860 while (v4l2_dv_timings_presets[dev->query_dv_timings_size].bt.width) 860 while (v4l2_dv_timings_presets[dev->query_dv_timings_size].bt.width)
861 dev->query_dv_timings_size++; 861 dev->query_dv_timings_size++;
862 dev->query_dv_timings_qmenu = kmalloc(dev->query_dv_timings_size * 862 dev->query_dv_timings_qmenu = kmalloc_array(dev->query_dv_timings_size,
863 (sizeof(void *) + 32), GFP_KERNEL); 863 (sizeof(void *) + 32),
864 GFP_KERNEL);
864 if (dev->query_dv_timings_qmenu == NULL) 865 if (dev->query_dv_timings_qmenu == NULL)
865 goto free_dev; 866 goto free_dev;
866 for (i = 0; i < dev->query_dv_timings_size; i++) { 867 for (i = 0; i < dev->query_dv_timings_size; i++) {
diff --git a/drivers/media/platform/vsp1/vsp1_entity.c b/drivers/media/platform/vsp1/vsp1_entity.c
index da276a85aa95..36a29e13109e 100644
--- a/drivers/media/platform/vsp1/vsp1_entity.c
+++ b/drivers/media/platform/vsp1/vsp1_entity.c
@@ -630,7 +630,8 @@ int vsp1_entity_init(struct vsp1_device *vsp1, struct vsp1_entity *entity,
630 entity->source_pad = num_pads - 1; 630 entity->source_pad = num_pads - 1;
631 631
632 /* Allocate and initialize pads. */ 632 /* Allocate and initialize pads. */
633 entity->pads = devm_kzalloc(vsp1->dev, num_pads * sizeof(*entity->pads), 633 entity->pads = devm_kcalloc(vsp1->dev,
634 num_pads, sizeof(*entity->pads),
634 GFP_KERNEL); 635 GFP_KERNEL);
635 if (entity->pads == NULL) 636 if (entity->pads == NULL)
636 return -ENOMEM; 637 return -ENOMEM;
diff --git a/drivers/media/platform/xilinx/xilinx-vipp.c b/drivers/media/platform/xilinx/xilinx-vipp.c
index 6bb28cd49dae..6d95ec1e9a6b 100644
--- a/drivers/media/platform/xilinx/xilinx-vipp.c
+++ b/drivers/media/platform/xilinx/xilinx-vipp.c
@@ -532,7 +532,7 @@ static int xvip_graph_init(struct xvip_composite_device *xdev)
532 532
533 /* Register the subdevices notifier. */ 533 /* Register the subdevices notifier. */
534 num_subdevs = xdev->num_subdevs; 534 num_subdevs = xdev->num_subdevs;
535 subdevs = devm_kzalloc(xdev->dev, sizeof(*subdevs) * num_subdevs, 535 subdevs = devm_kcalloc(xdev->dev, num_subdevs, sizeof(*subdevs),
536 GFP_KERNEL); 536 GFP_KERNEL);
537 if (subdevs == NULL) { 537 if (subdevs == NULL) {
538 ret = -ENOMEM; 538 ret = -ENOMEM;
diff --git a/drivers/media/usb/au0828/au0828-video.c b/drivers/media/usb/au0828/au0828-video.c
index 964cd7bcdd2c..70e187971590 100644
--- a/drivers/media/usb/au0828/au0828-video.c
+++ b/drivers/media/usb/au0828/au0828-video.c
@@ -217,14 +217,14 @@ static int au0828_init_isoc(struct au0828_dev *dev, int max_packets,
217 dev->isoc_ctl.isoc_copy = isoc_copy; 217 dev->isoc_ctl.isoc_copy = isoc_copy;
218 dev->isoc_ctl.num_bufs = num_bufs; 218 dev->isoc_ctl.num_bufs = num_bufs;
219 219
220 dev->isoc_ctl.urb = kzalloc(sizeof(void *)*num_bufs, GFP_KERNEL); 220 dev->isoc_ctl.urb = kcalloc(num_bufs, sizeof(void *), GFP_KERNEL);
221 if (!dev->isoc_ctl.urb) { 221 if (!dev->isoc_ctl.urb) {
222 au0828_isocdbg("cannot alloc memory for usb buffers\n"); 222 au0828_isocdbg("cannot alloc memory for usb buffers\n");
223 return -ENOMEM; 223 return -ENOMEM;
224 } 224 }
225 225
226 dev->isoc_ctl.transfer_buffer = kzalloc(sizeof(void *)*num_bufs, 226 dev->isoc_ctl.transfer_buffer = kcalloc(num_bufs, sizeof(void *),
227 GFP_KERNEL); 227 GFP_KERNEL);
228 if (!dev->isoc_ctl.transfer_buffer) { 228 if (!dev->isoc_ctl.transfer_buffer) {
229 au0828_isocdbg("cannot allocate memory for usb transfer\n"); 229 au0828_isocdbg("cannot allocate memory for usb transfer\n");
230 kfree(dev->isoc_ctl.urb); 230 kfree(dev->isoc_ctl.urb);
diff --git a/drivers/media/usb/cpia2/cpia2_usb.c b/drivers/media/usb/cpia2/cpia2_usb.c
index b51fc372ca25..a771e0a52610 100644
--- a/drivers/media/usb/cpia2/cpia2_usb.c
+++ b/drivers/media/usb/cpia2/cpia2_usb.c
@@ -663,7 +663,8 @@ static int submit_urbs(struct camera_data *cam)
663 if (cam->sbuf[i].data) 663 if (cam->sbuf[i].data)
664 continue; 664 continue;
665 cam->sbuf[i].data = 665 cam->sbuf[i].data =
666 kmalloc(FRAMES_PER_DESC * FRAME_SIZE_PER_DESC, GFP_KERNEL); 666 kmalloc_array(FRAME_SIZE_PER_DESC, FRAMES_PER_DESC,
667 GFP_KERNEL);
667 if (!cam->sbuf[i].data) { 668 if (!cam->sbuf[i].data) {
668 while (--i >= 0) { 669 while (--i >= 0) {
669 kfree(cam->sbuf[i].data); 670 kfree(cam->sbuf[i].data);
diff --git a/drivers/media/usb/cx231xx/cx231xx-audio.c b/drivers/media/usb/cx231xx/cx231xx-audio.c
index d96236d786d1..c4a84fb930b6 100644
--- a/drivers/media/usb/cx231xx/cx231xx-audio.c
+++ b/drivers/media/usb/cx231xx/cx231xx-audio.c
@@ -710,7 +710,7 @@ static int cx231xx_audio_init(struct cx231xx *dev)
710 dev_info(dev->dev, 710 dev_info(dev->dev,
711 "audio EndPoint Addr 0x%x, Alternate settings: %i\n", 711 "audio EndPoint Addr 0x%x, Alternate settings: %i\n",
712 adev->end_point_addr, adev->num_alt); 712 adev->end_point_addr, adev->num_alt);
713 adev->alt_max_pkt_size = kmalloc(32 * adev->num_alt, GFP_KERNEL); 713 adev->alt_max_pkt_size = kmalloc_array(32, adev->num_alt, GFP_KERNEL);
714 if (!adev->alt_max_pkt_size) { 714 if (!adev->alt_max_pkt_size) {
715 err = -ENOMEM; 715 err = -ENOMEM;
716 goto err_free_card; 716 goto err_free_card;
diff --git a/drivers/media/usb/cx231xx/cx231xx-core.c b/drivers/media/usb/cx231xx/cx231xx-core.c
index 4f43668df15d..53d846dea3d2 100644
--- a/drivers/media/usb/cx231xx/cx231xx-core.c
+++ b/drivers/media/usb/cx231xx/cx231xx-core.c
@@ -1034,7 +1034,7 @@ int cx231xx_init_isoc(struct cx231xx *dev, int max_packets,
1034 dma_q->partial_buf[i] = 0; 1034 dma_q->partial_buf[i] = 0;
1035 1035
1036 dev->video_mode.isoc_ctl.urb = 1036 dev->video_mode.isoc_ctl.urb =
1037 kzalloc(sizeof(void *) * num_bufs, GFP_KERNEL); 1037 kcalloc(num_bufs, sizeof(void *), GFP_KERNEL);
1038 if (!dev->video_mode.isoc_ctl.urb) { 1038 if (!dev->video_mode.isoc_ctl.urb) {
1039 dev_err(dev->dev, 1039 dev_err(dev->dev,
1040 "cannot alloc memory for usb buffers\n"); 1040 "cannot alloc memory for usb buffers\n");
@@ -1042,7 +1042,7 @@ int cx231xx_init_isoc(struct cx231xx *dev, int max_packets,
1042 } 1042 }
1043 1043
1044 dev->video_mode.isoc_ctl.transfer_buffer = 1044 dev->video_mode.isoc_ctl.transfer_buffer =
1045 kzalloc(sizeof(void *) * num_bufs, GFP_KERNEL); 1045 kcalloc(num_bufs, sizeof(void *), GFP_KERNEL);
1046 if (!dev->video_mode.isoc_ctl.transfer_buffer) { 1046 if (!dev->video_mode.isoc_ctl.transfer_buffer) {
1047 dev_err(dev->dev, 1047 dev_err(dev->dev,
1048 "cannot allocate memory for usbtransfer\n"); 1048 "cannot allocate memory for usbtransfer\n");
@@ -1169,7 +1169,7 @@ int cx231xx_init_bulk(struct cx231xx *dev, int max_packets,
1169 dma_q->partial_buf[i] = 0; 1169 dma_q->partial_buf[i] = 0;
1170 1170
1171 dev->video_mode.bulk_ctl.urb = 1171 dev->video_mode.bulk_ctl.urb =
1172 kzalloc(sizeof(void *) * num_bufs, GFP_KERNEL); 1172 kcalloc(num_bufs, sizeof(void *), GFP_KERNEL);
1173 if (!dev->video_mode.bulk_ctl.urb) { 1173 if (!dev->video_mode.bulk_ctl.urb) {
1174 dev_err(dev->dev, 1174 dev_err(dev->dev,
1175 "cannot alloc memory for usb buffers\n"); 1175 "cannot alloc memory for usb buffers\n");
@@ -1177,7 +1177,7 @@ int cx231xx_init_bulk(struct cx231xx *dev, int max_packets,
1177 } 1177 }
1178 1178
1179 dev->video_mode.bulk_ctl.transfer_buffer = 1179 dev->video_mode.bulk_ctl.transfer_buffer =
1180 kzalloc(sizeof(void *) * num_bufs, GFP_KERNEL); 1180 kcalloc(num_bufs, sizeof(void *), GFP_KERNEL);
1181 if (!dev->video_mode.bulk_ctl.transfer_buffer) { 1181 if (!dev->video_mode.bulk_ctl.transfer_buffer) {
1182 dev_err(dev->dev, 1182 dev_err(dev->dev,
1183 "cannot allocate memory for usbtransfer\n"); 1183 "cannot allocate memory for usbtransfer\n");
diff --git a/drivers/media/usb/cx231xx/cx231xx-vbi.c b/drivers/media/usb/cx231xx/cx231xx-vbi.c
index d3bfe8e23b1f..b621cf1aa96b 100644
--- a/drivers/media/usb/cx231xx/cx231xx-vbi.c
+++ b/drivers/media/usb/cx231xx/cx231xx-vbi.c
@@ -415,7 +415,7 @@ int cx231xx_init_vbi_isoc(struct cx231xx *dev, int max_packets,
415 for (i = 0; i < 8; i++) 415 for (i = 0; i < 8; i++)
416 dma_q->partial_buf[i] = 0; 416 dma_q->partial_buf[i] = 0;
417 417
418 dev->vbi_mode.bulk_ctl.urb = kzalloc(sizeof(void *) * num_bufs, 418 dev->vbi_mode.bulk_ctl.urb = kcalloc(num_bufs, sizeof(void *),
419 GFP_KERNEL); 419 GFP_KERNEL);
420 if (!dev->vbi_mode.bulk_ctl.urb) { 420 if (!dev->vbi_mode.bulk_ctl.urb) {
421 dev_err(dev->dev, 421 dev_err(dev->dev,
@@ -424,7 +424,7 @@ int cx231xx_init_vbi_isoc(struct cx231xx *dev, int max_packets,
424 } 424 }
425 425
426 dev->vbi_mode.bulk_ctl.transfer_buffer = 426 dev->vbi_mode.bulk_ctl.transfer_buffer =
427 kzalloc(sizeof(void *) * num_bufs, GFP_KERNEL); 427 kcalloc(num_bufs, sizeof(void *), GFP_KERNEL);
428 if (!dev->vbi_mode.bulk_ctl.transfer_buffer) { 428 if (!dev->vbi_mode.bulk_ctl.transfer_buffer) {
429 dev_err(dev->dev, 429 dev_err(dev->dev,
430 "cannot allocate memory for usbtransfer\n"); 430 "cannot allocate memory for usbtransfer\n");
diff --git a/drivers/media/usb/go7007/go7007-fw.c b/drivers/media/usb/go7007/go7007-fw.c
index 87b4fc48ef09..24f5b615dc7a 100644
--- a/drivers/media/usb/go7007/go7007-fw.c
+++ b/drivers/media/usb/go7007/go7007-fw.c
@@ -1579,7 +1579,7 @@ int go7007_construct_fw_image(struct go7007 *go, u8 **fw, int *fwlen)
1579 GO7007_FW_NAME); 1579 GO7007_FW_NAME);
1580 return -1; 1580 return -1;
1581 } 1581 }
1582 code = kzalloc(codespace * 2, GFP_KERNEL); 1582 code = kcalloc(codespace, 2, GFP_KERNEL);
1583 if (code == NULL) 1583 if (code == NULL)
1584 goto fw_failed; 1584 goto fw_failed;
1585 1585
diff --git a/drivers/media/usb/go7007/go7007-usb.c b/drivers/media/usb/go7007/go7007-usb.c
index ed9bcaf08d5e..19c6a0354ce0 100644
--- a/drivers/media/usb/go7007/go7007-usb.c
+++ b/drivers/media/usb/go7007/go7007-usb.c
@@ -1143,7 +1143,8 @@ static int go7007_usb_probe(struct usb_interface *intf,
1143 usb->intr_urb = usb_alloc_urb(0, GFP_KERNEL); 1143 usb->intr_urb = usb_alloc_urb(0, GFP_KERNEL);
1144 if (usb->intr_urb == NULL) 1144 if (usb->intr_urb == NULL)
1145 goto allocfail; 1145 goto allocfail;
1146 usb->intr_urb->transfer_buffer = kmalloc(2*sizeof(u16), GFP_KERNEL); 1146 usb->intr_urb->transfer_buffer = kmalloc_array(2, sizeof(u16),
1147 GFP_KERNEL);
1147 if (usb->intr_urb->transfer_buffer == NULL) 1148 if (usb->intr_urb->transfer_buffer == NULL)
1148 goto allocfail; 1149 goto allocfail;
1149 1150
diff --git a/drivers/media/usb/gspca/t613.c b/drivers/media/usb/gspca/t613.c
index 0ae557cd15ef..445782919446 100644
--- a/drivers/media/usb/gspca/t613.c
+++ b/drivers/media/usb/gspca/t613.c
@@ -363,7 +363,7 @@ static void reg_w_ixbuf(struct gspca_dev *gspca_dev,
363 if (len * 2 <= USB_BUF_SZ) { 363 if (len * 2 <= USB_BUF_SZ) {
364 p = tmpbuf = gspca_dev->usb_buf; 364 p = tmpbuf = gspca_dev->usb_buf;
365 } else { 365 } else {
366 p = tmpbuf = kmalloc(len * 2, GFP_KERNEL); 366 p = tmpbuf = kmalloc_array(len, 2, GFP_KERNEL);
367 if (!tmpbuf) { 367 if (!tmpbuf) {
368 pr_err("Out of memory\n"); 368 pr_err("Out of memory\n");
369 return; 369 return;
diff --git a/drivers/media/usb/pvrusb2/pvrusb2-hdw.c b/drivers/media/usb/pvrusb2/pvrusb2-hdw.c
index e0353161ccd6..a8519da0020b 100644
--- a/drivers/media/usb/pvrusb2/pvrusb2-hdw.c
+++ b/drivers/media/usb/pvrusb2/pvrusb2-hdw.c
@@ -2413,7 +2413,7 @@ struct pvr2_hdw *pvr2_hdw_create(struct usb_interface *intf,
2413 2413
2414 hdw->control_cnt = CTRLDEF_COUNT; 2414 hdw->control_cnt = CTRLDEF_COUNT;
2415 hdw->control_cnt += MPEGDEF_COUNT; 2415 hdw->control_cnt += MPEGDEF_COUNT;
2416 hdw->controls = kzalloc(sizeof(struct pvr2_ctrl) * hdw->control_cnt, 2416 hdw->controls = kcalloc(hdw->control_cnt, sizeof(struct pvr2_ctrl),
2417 GFP_KERNEL); 2417 GFP_KERNEL);
2418 if (!hdw->controls) goto fail; 2418 if (!hdw->controls) goto fail;
2419 hdw->hdw_desc = hdw_desc; 2419 hdw->hdw_desc = hdw_desc;
diff --git a/drivers/media/usb/pvrusb2/pvrusb2-std.c b/drivers/media/usb/pvrusb2/pvrusb2-std.c
index 21bb20dba82c..6b651f8b54df 100644
--- a/drivers/media/usb/pvrusb2/pvrusb2-std.c
+++ b/drivers/media/usb/pvrusb2/pvrusb2-std.c
@@ -361,7 +361,7 @@ struct v4l2_standard *pvr2_std_create_enum(unsigned int *countptr,
361 std_cnt); 361 std_cnt);
362 if (!std_cnt) return NULL; // paranoia 362 if (!std_cnt) return NULL; // paranoia
363 363
364 stddefs = kzalloc(sizeof(struct v4l2_standard) * std_cnt, 364 stddefs = kcalloc(std_cnt, sizeof(struct v4l2_standard),
365 GFP_KERNEL); 365 GFP_KERNEL);
366 if (!stddefs) 366 if (!stddefs)
367 return NULL; 367 return NULL;
diff --git a/drivers/media/usb/stk1160/stk1160-core.c b/drivers/media/usb/stk1160/stk1160-core.c
index 72bd893c9659..468f5ccf4ae6 100644
--- a/drivers/media/usb/stk1160/stk1160-core.c
+++ b/drivers/media/usb/stk1160/stk1160-core.c
@@ -290,8 +290,9 @@ static int stk1160_probe(struct usb_interface *interface,
290 return -ENODEV; 290 return -ENODEV;
291 291
292 /* Alloc an array for all possible max_pkt_size */ 292 /* Alloc an array for all possible max_pkt_size */
293 alt_max_pkt_size = kmalloc(sizeof(alt_max_pkt_size[0]) * 293 alt_max_pkt_size = kmalloc_array(interface->num_altsetting,
294 interface->num_altsetting, GFP_KERNEL); 294 sizeof(alt_max_pkt_size[0]),
295 GFP_KERNEL);
295 if (alt_max_pkt_size == NULL) 296 if (alt_max_pkt_size == NULL)
296 return -ENOMEM; 297 return -ENOMEM;
297 298
diff --git a/drivers/media/usb/stk1160/stk1160-video.c b/drivers/media/usb/stk1160/stk1160-video.c
index 423c03a0638d..2811f612820f 100644
--- a/drivers/media/usb/stk1160/stk1160-video.c
+++ b/drivers/media/usb/stk1160/stk1160-video.c
@@ -439,14 +439,14 @@ int stk1160_alloc_isoc(struct stk1160 *dev)
439 439
440 dev->isoc_ctl.buf = NULL; 440 dev->isoc_ctl.buf = NULL;
441 dev->isoc_ctl.max_pkt_size = dev->max_pkt_size; 441 dev->isoc_ctl.max_pkt_size = dev->max_pkt_size;
442 dev->isoc_ctl.urb = kzalloc(sizeof(void *)*num_bufs, GFP_KERNEL); 442 dev->isoc_ctl.urb = kcalloc(num_bufs, sizeof(void *), GFP_KERNEL);
443 if (!dev->isoc_ctl.urb) { 443 if (!dev->isoc_ctl.urb) {
444 stk1160_err("out of memory for urb array\n"); 444 stk1160_err("out of memory for urb array\n");
445 return -ENOMEM; 445 return -ENOMEM;
446 } 446 }
447 447
448 dev->isoc_ctl.transfer_buffer = kzalloc(sizeof(void *)*num_bufs, 448 dev->isoc_ctl.transfer_buffer = kcalloc(num_bufs, sizeof(void *),
449 GFP_KERNEL); 449 GFP_KERNEL);
450 if (!dev->isoc_ctl.transfer_buffer) { 450 if (!dev->isoc_ctl.transfer_buffer) {
451 stk1160_err("out of memory for usb transfers\n"); 451 stk1160_err("out of memory for usb transfers\n");
452 kfree(dev->isoc_ctl.urb); 452 kfree(dev->isoc_ctl.urb);
diff --git a/drivers/media/usb/stkwebcam/stk-webcam.c b/drivers/media/usb/stkwebcam/stk-webcam.c
index 22389b56ec24..5accb5241072 100644
--- a/drivers/media/usb/stkwebcam/stk-webcam.c
+++ b/drivers/media/usb/stkwebcam/stk-webcam.c
@@ -567,8 +567,9 @@ static int stk_prepare_sio_buffers(struct stk_camera *dev, unsigned n_sbufs)
567 if (dev->sio_bufs != NULL) 567 if (dev->sio_bufs != NULL)
568 pr_err("sio_bufs already allocated\n"); 568 pr_err("sio_bufs already allocated\n");
569 else { 569 else {
570 dev->sio_bufs = kzalloc(n_sbufs * sizeof(struct stk_sio_buffer), 570 dev->sio_bufs = kcalloc(n_sbufs,
571 GFP_KERNEL); 571 sizeof(struct stk_sio_buffer),
572 GFP_KERNEL);
572 if (dev->sio_bufs == NULL) 573 if (dev->sio_bufs == NULL)
573 return -ENOMEM; 574 return -ENOMEM;
574 for (i = 0; i < n_sbufs; i++) { 575 for (i = 0; i < n_sbufs; i++) {
diff --git a/drivers/media/usb/tm6000/tm6000-video.c b/drivers/media/usb/tm6000/tm6000-video.c
index aa85fe31c835..96055de6e8ce 100644
--- a/drivers/media/usb/tm6000/tm6000-video.c
+++ b/drivers/media/usb/tm6000/tm6000-video.c
@@ -463,11 +463,12 @@ static int tm6000_alloc_urb_buffers(struct tm6000_core *dev)
463 if (dev->urb_buffer) 463 if (dev->urb_buffer)
464 return 0; 464 return 0;
465 465
466 dev->urb_buffer = kmalloc(sizeof(void *)*num_bufs, GFP_KERNEL); 466 dev->urb_buffer = kmalloc_array(num_bufs, sizeof(void *), GFP_KERNEL);
467 if (!dev->urb_buffer) 467 if (!dev->urb_buffer)
468 return -ENOMEM; 468 return -ENOMEM;
469 469
470 dev->urb_dma = kmalloc(sizeof(dma_addr_t *)*num_bufs, GFP_KERNEL); 470 dev->urb_dma = kmalloc_array(num_bufs, sizeof(dma_addr_t *),
471 GFP_KERNEL);
471 if (!dev->urb_dma) 472 if (!dev->urb_dma)
472 return -ENOMEM; 473 return -ENOMEM;
473 474
@@ -583,12 +584,14 @@ static int tm6000_prepare_isoc(struct tm6000_core *dev)
583 584
584 dev->isoc_ctl.num_bufs = num_bufs; 585 dev->isoc_ctl.num_bufs = num_bufs;
585 586
586 dev->isoc_ctl.urb = kmalloc(sizeof(void *)*num_bufs, GFP_KERNEL); 587 dev->isoc_ctl.urb = kmalloc_array(num_bufs, sizeof(void *),
588 GFP_KERNEL);
587 if (!dev->isoc_ctl.urb) 589 if (!dev->isoc_ctl.urb)
588 return -ENOMEM; 590 return -ENOMEM;
589 591
590 dev->isoc_ctl.transfer_buffer = kmalloc(sizeof(void *)*num_bufs, 592 dev->isoc_ctl.transfer_buffer = kmalloc_array(num_bufs,
591 GFP_KERNEL); 593 sizeof(void *),
594 GFP_KERNEL);
592 if (!dev->isoc_ctl.transfer_buffer) { 595 if (!dev->isoc_ctl.transfer_buffer) {
593 kfree(dev->isoc_ctl.urb); 596 kfree(dev->isoc_ctl.urb);
594 return -ENOMEM; 597 return -ENOMEM;
diff --git a/drivers/media/usb/usbtv/usbtv-video.c b/drivers/media/usb/usbtv/usbtv-video.c
index ce79df643c7e..36a9a4017185 100644
--- a/drivers/media/usb/usbtv/usbtv-video.c
+++ b/drivers/media/usb/usbtv/usbtv-video.c
@@ -507,7 +507,7 @@ static struct urb *usbtv_setup_iso_transfer(struct usbtv *usbtv)
507 ip->pipe = usb_rcvisocpipe(usbtv->udev, USBTV_VIDEO_ENDP); 507 ip->pipe = usb_rcvisocpipe(usbtv->udev, USBTV_VIDEO_ENDP);
508 ip->interval = 1; 508 ip->interval = 1;
509 ip->transfer_flags = URB_ISO_ASAP; 509 ip->transfer_flags = URB_ISO_ASAP;
510 ip->transfer_buffer = kzalloc(size * USBTV_ISOC_PACKETS, 510 ip->transfer_buffer = kcalloc(USBTV_ISOC_PACKETS, size,
511 GFP_KERNEL); 511 GFP_KERNEL);
512 if (!ip->transfer_buffer) { 512 if (!ip->transfer_buffer) {
513 usb_free_urb(ip); 513 usb_free_urb(ip);
diff --git a/drivers/media/usb/usbvision/usbvision-video.c b/drivers/media/usb/usbvision/usbvision-video.c
index 0f5954a1fea2..f29d1bef0293 100644
--- a/drivers/media/usb/usbvision/usbvision-video.c
+++ b/drivers/media/usb/usbvision/usbvision-video.c
@@ -1492,7 +1492,8 @@ static int usbvision_probe(struct usb_interface *intf,
1492 1492
1493 usbvision->num_alt = uif->num_altsetting; 1493 usbvision->num_alt = uif->num_altsetting;
1494 PDEBUG(DBG_PROBE, "Alternate settings: %i", usbvision->num_alt); 1494 PDEBUG(DBG_PROBE, "Alternate settings: %i", usbvision->num_alt);
1495 usbvision->alt_max_pkt_size = kmalloc(32 * usbvision->num_alt, GFP_KERNEL); 1495 usbvision->alt_max_pkt_size = kmalloc_array(32, usbvision->num_alt,
1496 GFP_KERNEL);
1496 if (!usbvision->alt_max_pkt_size) { 1497 if (!usbvision->alt_max_pkt_size) {
1497 ret = -ENOMEM; 1498 ret = -ENOMEM;
1498 goto err_pkt; 1499 goto err_pkt;
diff --git a/drivers/media/usb/uvc/uvc_video.c b/drivers/media/usb/uvc/uvc_video.c
index b28c997a7ab0..a88b2e51a666 100644
--- a/drivers/media/usb/uvc/uvc_video.c
+++ b/drivers/media/usb/uvc/uvc_video.c
@@ -513,8 +513,8 @@ static int uvc_video_clock_init(struct uvc_streaming *stream)
513 spin_lock_init(&clock->lock); 513 spin_lock_init(&clock->lock);
514 clock->size = 32; 514 clock->size = 32;
515 515
516 clock->samples = kmalloc(clock->size * sizeof(*clock->samples), 516 clock->samples = kmalloc_array(clock->size, sizeof(*clock->samples),
517 GFP_KERNEL); 517 GFP_KERNEL);
518 if (clock->samples == NULL) 518 if (clock->samples == NULL)
519 return -ENOMEM; 519 return -ENOMEM;
520 520
diff --git a/drivers/media/v4l2-core/v4l2-event.c b/drivers/media/v4l2-core/v4l2-event.c
index 968c2eb08b5a..127fe6eb91d9 100644
--- a/drivers/media/v4l2-core/v4l2-event.c
+++ b/drivers/media/v4l2-core/v4l2-event.c
@@ -215,8 +215,7 @@ int v4l2_event_subscribe(struct v4l2_fh *fh,
215 if (elems < 1) 215 if (elems < 1)
216 elems = 1; 216 elems = 1;
217 217
218 sev = kvzalloc(sizeof(*sev) + sizeof(struct v4l2_kevent) * elems, 218 sev = kvzalloc(struct_size(sev, events, elems), GFP_KERNEL);
219 GFP_KERNEL);
220 if (!sev) 219 if (!sev)
221 return -ENOMEM; 220 return -ENOMEM;
222 for (i = 0; i < elems; i++) 221 for (i = 0; i < elems; i++)
diff --git a/drivers/media/v4l2-core/v4l2-flash-led-class.c b/drivers/media/v4l2-core/v4l2-flash-led-class.c
index 4ceef217de83..215b4804ada2 100644
--- a/drivers/media/v4l2-core/v4l2-flash-led-class.c
+++ b/drivers/media/v4l2-core/v4l2-flash-led-class.c
@@ -412,9 +412,10 @@ static int v4l2_flash_init_controls(struct v4l2_flash *v4l2_flash,
412 struct v4l2_ctrl_config *ctrl_cfg; 412 struct v4l2_ctrl_config *ctrl_cfg;
413 int i, ret, num_ctrls = 0; 413 int i, ret, num_ctrls = 0;
414 414
415 v4l2_flash->ctrls = devm_kzalloc(v4l2_flash->sd.dev, 415 v4l2_flash->ctrls = devm_kcalloc(v4l2_flash->sd.dev,
416 sizeof(*v4l2_flash->ctrls) * 416 STROBE_SOURCE + 1,
417 (STROBE_SOURCE + 1), GFP_KERNEL); 417 sizeof(*v4l2_flash->ctrls),
418 GFP_KERNEL);
418 if (!v4l2_flash->ctrls) 419 if (!v4l2_flash->ctrls)
419 return -ENOMEM; 420 return -ENOMEM;
420 421
diff --git a/drivers/media/v4l2-core/videobuf-dma-sg.c b/drivers/media/v4l2-core/videobuf-dma-sg.c
index 2e5c346f9c30..08929c087e27 100644
--- a/drivers/media/v4l2-core/videobuf-dma-sg.c
+++ b/drivers/media/v4l2-core/videobuf-dma-sg.c
@@ -69,7 +69,7 @@ static struct scatterlist *videobuf_vmalloc_to_sg(unsigned char *virt,
69 struct page *pg; 69 struct page *pg;
70 int i; 70 int i;
71 71
72 sglist = vzalloc(nr_pages * sizeof(*sglist)); 72 sglist = vzalloc(array_size(nr_pages, sizeof(*sglist)));
73 if (NULL == sglist) 73 if (NULL == sglist)
74 return NULL; 74 return NULL;
75 sg_init_table(sglist, nr_pages); 75 sg_init_table(sglist, nr_pages);
@@ -100,7 +100,7 @@ static struct scatterlist *videobuf_pages_to_sg(struct page **pages,
100 100
101 if (NULL == pages[0]) 101 if (NULL == pages[0])
102 return NULL; 102 return NULL;
103 sglist = vmalloc(nr_pages * sizeof(*sglist)); 103 sglist = vmalloc(array_size(nr_pages, sizeof(*sglist)));
104 if (NULL == sglist) 104 if (NULL == sglist)
105 return NULL; 105 return NULL;
106 sg_init_table(sglist, nr_pages); 106 sg_init_table(sglist, nr_pages);
@@ -175,7 +175,8 @@ static int videobuf_dma_init_user_locked(struct videobuf_dmabuf *dma,
175 dma->offset = data & ~PAGE_MASK; 175 dma->offset = data & ~PAGE_MASK;
176 dma->size = size; 176 dma->size = size;
177 dma->nr_pages = last-first+1; 177 dma->nr_pages = last-first+1;
178 dma->pages = kmalloc(dma->nr_pages * sizeof(struct page *), GFP_KERNEL); 178 dma->pages = kmalloc_array(dma->nr_pages, sizeof(struct page *),
179 GFP_KERNEL);
179 if (NULL == dma->pages) 180 if (NULL == dma->pages)
180 return -ENOMEM; 181 return -ENOMEM;
181 182
diff --git a/drivers/memory/of_memory.c b/drivers/memory/of_memory.c
index 568f05ed961a..2f5ed7366eec 100644
--- a/drivers/memory/of_memory.c
+++ b/drivers/memory/of_memory.c
@@ -126,8 +126,8 @@ const struct lpddr2_timings *of_get_ddr_timings(struct device_node *np_ddr,
126 arr_sz++; 126 arr_sz++;
127 127
128 if (arr_sz) 128 if (arr_sz)
129 timings = devm_kzalloc(dev, sizeof(*timings) * arr_sz, 129 timings = devm_kcalloc(dev, arr_sz, sizeof(*timings),
130 GFP_KERNEL); 130 GFP_KERNEL);
131 131
132 if (!timings) 132 if (!timings)
133 goto default_timings; 133 goto default_timings;
diff --git a/drivers/memstick/core/ms_block.c b/drivers/memstick/core/ms_block.c
index a15181fa45f7..716fc8ed31d3 100644
--- a/drivers/memstick/core/ms_block.c
+++ b/drivers/memstick/core/ms_block.c
@@ -1201,7 +1201,8 @@ static int msb_read_boot_blocks(struct msb_data *msb)
1201 dbg_verbose("Start of a scan for the boot blocks"); 1201 dbg_verbose("Start of a scan for the boot blocks");
1202 1202
1203 if (!msb->boot_page) { 1203 if (!msb->boot_page) {
1204 page = kmalloc(sizeof(struct ms_boot_page)*2, GFP_KERNEL); 1204 page = kmalloc_array(2, sizeof(struct ms_boot_page),
1205 GFP_KERNEL);
1205 if (!page) 1206 if (!page)
1206 return -ENOMEM; 1207 return -ENOMEM;
1207 1208
@@ -1341,7 +1342,8 @@ static int msb_ftl_initialize(struct msb_data *msb)
1341 msb->used_blocks_bitmap = kzalloc(msb->block_count / 8, GFP_KERNEL); 1342 msb->used_blocks_bitmap = kzalloc(msb->block_count / 8, GFP_KERNEL);
1342 msb->erased_blocks_bitmap = kzalloc(msb->block_count / 8, GFP_KERNEL); 1343 msb->erased_blocks_bitmap = kzalloc(msb->block_count / 8, GFP_KERNEL);
1343 msb->lba_to_pba_table = 1344 msb->lba_to_pba_table =
1344 kmalloc(msb->logical_block_count * sizeof(u16), GFP_KERNEL); 1345 kmalloc_array(msb->logical_block_count, sizeof(u16),
1346 GFP_KERNEL);
1345 1347
1346 if (!msb->used_blocks_bitmap || !msb->lba_to_pba_table || 1348 if (!msb->used_blocks_bitmap || !msb->lba_to_pba_table ||
1347 !msb->erased_blocks_bitmap) { 1349 !msb->erased_blocks_bitmap) {
diff --git a/drivers/message/fusion/mptlan.c b/drivers/message/fusion/mptlan.c
index 4cbed4d06aa7..ebc00d47abf5 100644
--- a/drivers/message/fusion/mptlan.c
+++ b/drivers/message/fusion/mptlan.c
@@ -394,7 +394,8 @@ mpt_lan_open(struct net_device *dev)
394 "a moment.\n"); 394 "a moment.\n");
395 } 395 }
396 396
397 priv->mpt_txfidx = kmalloc(priv->tx_max_out * sizeof(int), GFP_KERNEL); 397 priv->mpt_txfidx = kmalloc_array(priv->tx_max_out, sizeof(int),
398 GFP_KERNEL);
398 if (priv->mpt_txfidx == NULL) 399 if (priv->mpt_txfidx == NULL)
399 goto out; 400 goto out;
400 priv->mpt_txfidx_tail = -1; 401 priv->mpt_txfidx_tail = -1;
@@ -408,8 +409,8 @@ mpt_lan_open(struct net_device *dev)
408 409
409 dlprintk((KERN_INFO MYNAM "@lo: Finished initializing SendCtl\n")); 410 dlprintk((KERN_INFO MYNAM "@lo: Finished initializing SendCtl\n"));
410 411
411 priv->mpt_rxfidx = kmalloc(priv->max_buckets_out * sizeof(int), 412 priv->mpt_rxfidx = kmalloc_array(priv->max_buckets_out, sizeof(int),
412 GFP_KERNEL); 413 GFP_KERNEL);
413 if (priv->mpt_rxfidx == NULL) 414 if (priv->mpt_rxfidx == NULL)
414 goto out_SendCtl; 415 goto out_SendCtl;
415 priv->mpt_rxfidx_tail = -1; 416 priv->mpt_rxfidx_tail = -1;
diff --git a/drivers/mfd/ab8500-debugfs.c b/drivers/mfd/ab8500-debugfs.c
index 831a1ceb2ed2..8d652b2f9d14 100644
--- a/drivers/mfd/ab8500-debugfs.c
+++ b/drivers/mfd/ab8500-debugfs.c
@@ -2659,18 +2659,18 @@ static int ab8500_debug_probe(struct platform_device *plf)
2659 ab8500 = dev_get_drvdata(plf->dev.parent); 2659 ab8500 = dev_get_drvdata(plf->dev.parent);
2660 num_irqs = ab8500->mask_size; 2660 num_irqs = ab8500->mask_size;
2661 2661
2662 irq_count = devm_kzalloc(&plf->dev, 2662 irq_count = devm_kcalloc(&plf->dev,
2663 sizeof(*irq_count)*num_irqs, GFP_KERNEL); 2663 num_irqs, sizeof(*irq_count), GFP_KERNEL);
2664 if (!irq_count) 2664 if (!irq_count)
2665 return -ENOMEM; 2665 return -ENOMEM;
2666 2666
2667 dev_attr = devm_kzalloc(&plf->dev, 2667 dev_attr = devm_kcalloc(&plf->dev,
2668 sizeof(*dev_attr)*num_irqs, GFP_KERNEL); 2668 num_irqs, sizeof(*dev_attr), GFP_KERNEL);
2669 if (!dev_attr) 2669 if (!dev_attr)
2670 return -ENOMEM; 2670 return -ENOMEM;
2671 2671
2672 event_name = devm_kzalloc(&plf->dev, 2672 event_name = devm_kcalloc(&plf->dev,
2673 sizeof(*event_name)*num_irqs, GFP_KERNEL); 2673 num_irqs, sizeof(*event_name), GFP_KERNEL);
2674 if (!event_name) 2674 if (!event_name)
2675 return -ENOMEM; 2675 return -ENOMEM;
2676 2676
diff --git a/drivers/mfd/cros_ec_dev.c b/drivers/mfd/cros_ec_dev.c
index 4199cdd4ff89..306e1fd109bd 100644
--- a/drivers/mfd/cros_ec_dev.c
+++ b/drivers/mfd/cros_ec_dev.c
@@ -299,13 +299,14 @@ static void cros_ec_sensors_register(struct cros_ec_dev *ec)
299 resp = (struct ec_response_motion_sense *)msg->data; 299 resp = (struct ec_response_motion_sense *)msg->data;
300 sensor_num = resp->dump.sensor_count; 300 sensor_num = resp->dump.sensor_count;
301 /* Allocate 1 extra sensors in FIFO are needed */ 301 /* Allocate 1 extra sensors in FIFO are needed */
302 sensor_cells = kzalloc(sizeof(struct mfd_cell) * (sensor_num + 1), 302 sensor_cells = kcalloc(sensor_num + 1, sizeof(struct mfd_cell),
303 GFP_KERNEL); 303 GFP_KERNEL);
304 if (sensor_cells == NULL) 304 if (sensor_cells == NULL)
305 goto error; 305 goto error;
306 306
307 sensor_platforms = kzalloc(sizeof(struct cros_ec_sensor_platform) * 307 sensor_platforms = kcalloc(sensor_num + 1,
308 (sensor_num + 1), GFP_KERNEL); 308 sizeof(struct cros_ec_sensor_platform),
309 GFP_KERNEL);
309 if (sensor_platforms == NULL) 310 if (sensor_platforms == NULL)
310 goto error_platforms; 311 goto error_platforms;
311 312
diff --git a/drivers/mfd/htc-i2cpld.c b/drivers/mfd/htc-i2cpld.c
index 4bf8b7781c77..01572b5e79e8 100644
--- a/drivers/mfd/htc-i2cpld.c
+++ b/drivers/mfd/htc-i2cpld.c
@@ -477,7 +477,9 @@ static int htcpld_setup_chips(struct platform_device *pdev)
477 477
478 /* Setup each chip's output GPIOs */ 478 /* Setup each chip's output GPIOs */
479 htcpld->nchips = pdata->num_chip; 479 htcpld->nchips = pdata->num_chip;
480 htcpld->chip = devm_kzalloc(dev, sizeof(struct htcpld_chip) * htcpld->nchips, 480 htcpld->chip = devm_kcalloc(dev,
481 htcpld->nchips,
482 sizeof(struct htcpld_chip),
481 GFP_KERNEL); 483 GFP_KERNEL);
482 if (!htcpld->chip) 484 if (!htcpld->chip)
483 return -ENOMEM; 485 return -ENOMEM;
diff --git a/drivers/mfd/mfd-core.c b/drivers/mfd/mfd-core.c
index c57e407020f1..94e3f32ce935 100644
--- a/drivers/mfd/mfd-core.c
+++ b/drivers/mfd/mfd-core.c
@@ -158,7 +158,7 @@ static int mfd_add_device(struct device *parent, int id,
158 if (!pdev) 158 if (!pdev)
159 goto fail_alloc; 159 goto fail_alloc;
160 160
161 res = kzalloc(sizeof(*res) * cell->num_resources, GFP_KERNEL); 161 res = kcalloc(cell->num_resources, sizeof(*res), GFP_KERNEL);
162 if (!res) 162 if (!res)
163 goto fail_device; 163 goto fail_device;
164 164
diff --git a/drivers/mfd/motorola-cpcap.c b/drivers/mfd/motorola-cpcap.c
index d2cc1eabac05..5276911caaec 100644
--- a/drivers/mfd/motorola-cpcap.c
+++ b/drivers/mfd/motorola-cpcap.c
@@ -173,9 +173,9 @@ static int cpcap_init_irq(struct cpcap_ddata *cpcap)
173 int ret; 173 int ret;
174 174
175 cpcap->irqs = devm_kzalloc(&cpcap->spi->dev, 175 cpcap->irqs = devm_kzalloc(&cpcap->spi->dev,
176 sizeof(*cpcap->irqs) * 176 array3_size(sizeof(*cpcap->irqs),
177 CPCAP_NR_IRQ_REG_BANKS * 177 CPCAP_NR_IRQ_REG_BANKS,
178 cpcap->regmap_conf->val_bits, 178 cpcap->regmap_conf->val_bits),
179 GFP_KERNEL); 179 GFP_KERNEL);
180 if (!cpcap->irqs) 180 if (!cpcap->irqs)
181 return -ENOMEM; 181 return -ENOMEM;
diff --git a/drivers/mfd/sprd-sc27xx-spi.c b/drivers/mfd/sprd-sc27xx-spi.c
index 3460ef07623c..69df27769c21 100644
--- a/drivers/mfd/sprd-sc27xx-spi.c
+++ b/drivers/mfd/sprd-sc27xx-spi.c
@@ -199,8 +199,9 @@ static int sprd_pmic_probe(struct spi_device *spi)
199 ddata->irq_chip.num_irqs = pdata->num_irqs; 199 ddata->irq_chip.num_irqs = pdata->num_irqs;
200 ddata->irq_chip.mask_invert = true; 200 ddata->irq_chip.mask_invert = true;
201 201
202 ddata->irqs = devm_kzalloc(&spi->dev, sizeof(struct regmap_irq) * 202 ddata->irqs = devm_kcalloc(&spi->dev,
203 pdata->num_irqs, GFP_KERNEL); 203 pdata->num_irqs, sizeof(struct regmap_irq),
204 GFP_KERNEL);
204 if (!ddata->irqs) 205 if (!ddata->irqs)
205 return -ENOMEM; 206 return -ENOMEM;
206 207
diff --git a/drivers/mfd/timberdale.c b/drivers/mfd/timberdale.c
index 7c13d2e7061c..05ecf828b2ab 100644
--- a/drivers/mfd/timberdale.c
+++ b/drivers/mfd/timberdale.c
@@ -707,8 +707,8 @@ static int timb_probe(struct pci_dev *dev,
707 goto err_config; 707 goto err_config;
708 } 708 }
709 709
710 msix_entries = kzalloc(TIMBERDALE_NR_IRQS * sizeof(*msix_entries), 710 msix_entries = kcalloc(TIMBERDALE_NR_IRQS, sizeof(*msix_entries),
711 GFP_KERNEL); 711 GFP_KERNEL);
712 if (!msix_entries) 712 if (!msix_entries)
713 goto err_config; 713 goto err_config;
714 714
diff --git a/drivers/mfd/twl-core.c b/drivers/mfd/twl-core.c
index c649344fd7f2..4be3d239da9e 100644
--- a/drivers/mfd/twl-core.c
+++ b/drivers/mfd/twl-core.c
@@ -1139,8 +1139,9 @@ twl_probe(struct i2c_client *client, const struct i2c_device_id *id)
1139 } 1139 }
1140 1140
1141 num_slaves = twl_get_num_slaves(); 1141 num_slaves = twl_get_num_slaves();
1142 twl_priv->twl_modules = devm_kzalloc(&client->dev, 1142 twl_priv->twl_modules = devm_kcalloc(&client->dev,
1143 sizeof(struct twl_client) * num_slaves, 1143 num_slaves,
1144 sizeof(struct twl_client),
1144 GFP_KERNEL); 1145 GFP_KERNEL);
1145 if (!twl_priv->twl_modules) { 1146 if (!twl_priv->twl_modules) {
1146 status = -ENOMEM; 1147 status = -ENOMEM;
diff --git a/drivers/mfd/wm8994-core.c b/drivers/mfd/wm8994-core.c
index 953d0790ffd5..5d5888ee2966 100644
--- a/drivers/mfd/wm8994-core.c
+++ b/drivers/mfd/wm8994-core.c
@@ -368,9 +368,10 @@ static int wm8994_device_init(struct wm8994 *wm8994, int irq)
368 goto err; 368 goto err;
369 } 369 }
370 370
371 wm8994->supplies = devm_kzalloc(wm8994->dev, 371 wm8994->supplies = devm_kcalloc(wm8994->dev,
372 sizeof(struct regulator_bulk_data) * 372 wm8994->num_supplies,
373 wm8994->num_supplies, GFP_KERNEL); 373 sizeof(struct regulator_bulk_data),
374 GFP_KERNEL);
374 if (!wm8994->supplies) { 375 if (!wm8994->supplies) {
375 ret = -ENOMEM; 376 ret = -ENOMEM;
376 goto err; 377 goto err;
diff --git a/drivers/misc/altera-stapl/altera.c b/drivers/misc/altera-stapl/altera.c
index f53e217e963f..ef83a9078646 100644
--- a/drivers/misc/altera-stapl/altera.c
+++ b/drivers/misc/altera-stapl/altera.c
@@ -304,13 +304,13 @@ static int altera_execute(struct altera_state *astate,
304 if (sym_count <= 0) 304 if (sym_count <= 0)
305 goto exit_done; 305 goto exit_done;
306 306
307 vars = kzalloc(sym_count * sizeof(long), GFP_KERNEL); 307 vars = kcalloc(sym_count, sizeof(long), GFP_KERNEL);
308 308
309 if (vars == NULL) 309 if (vars == NULL)
310 status = -ENOMEM; 310 status = -ENOMEM;
311 311
312 if (status == 0) { 312 if (status == 0) {
313 var_size = kzalloc(sym_count * sizeof(s32), GFP_KERNEL); 313 var_size = kcalloc(sym_count, sizeof(s32), GFP_KERNEL);
314 314
315 if (var_size == NULL) 315 if (var_size == NULL)
316 status = -ENOMEM; 316 status = -ENOMEM;
@@ -1136,7 +1136,7 @@ exit_done:
1136 /* Allocate a writable buffer for this array */ 1136 /* Allocate a writable buffer for this array */
1137 count = var_size[variable_id]; 1137 count = var_size[variable_id];
1138 long_tmp = vars[variable_id]; 1138 long_tmp = vars[variable_id];
1139 longptr_tmp = kzalloc(count * sizeof(long), 1139 longptr_tmp = kcalloc(count, sizeof(long),
1140 GFP_KERNEL); 1140 GFP_KERNEL);
1141 vars[variable_id] = (long)longptr_tmp; 1141 vars[variable_id] = (long)longptr_tmp;
1142 1142
diff --git a/drivers/misc/cxl/guest.c b/drivers/misc/cxl/guest.c
index f58b4b6c79f2..4644f16606a3 100644
--- a/drivers/misc/cxl/guest.c
+++ b/drivers/misc/cxl/guest.c
@@ -89,7 +89,7 @@ static ssize_t guest_collect_vpd(struct cxl *adapter, struct cxl_afu *afu,
89 mod = 0; 89 mod = 0;
90 } 90 }
91 91
92 vpd_buf = kzalloc(entries * sizeof(unsigned long *), GFP_KERNEL); 92 vpd_buf = kcalloc(entries, sizeof(unsigned long *), GFP_KERNEL);
93 if (!vpd_buf) 93 if (!vpd_buf)
94 return -ENOMEM; 94 return -ENOMEM;
95 95
diff --git a/drivers/misc/cxl/of.c b/drivers/misc/cxl/of.c
index ec175ea5dfba..aff181cd0bf2 100644
--- a/drivers/misc/cxl/of.c
+++ b/drivers/misc/cxl/of.c
@@ -302,7 +302,7 @@ static int read_adapter_irq_config(struct cxl *adapter, struct device_node *np)
302 if (nranges == 0 || (nranges * 2 * sizeof(int)) != len) 302 if (nranges == 0 || (nranges * 2 * sizeof(int)) != len)
303 return -EINVAL; 303 return -EINVAL;
304 304
305 adapter->guest->irq_avail = kzalloc(nranges * sizeof(struct irq_avail), 305 adapter->guest->irq_avail = kcalloc(nranges, sizeof(struct irq_avail),
306 GFP_KERNEL); 306 GFP_KERNEL);
307 if (adapter->guest->irq_avail == NULL) 307 if (adapter->guest->irq_avail == NULL)
308 return -ENOMEM; 308 return -ENOMEM;
diff --git a/drivers/misc/eeprom/idt_89hpesx.c b/drivers/misc/eeprom/idt_89hpesx.c
index 34a5a41578d7..59dc24bb70ec 100644
--- a/drivers/misc/eeprom/idt_89hpesx.c
+++ b/drivers/misc/eeprom/idt_89hpesx.c
@@ -964,7 +964,7 @@ static ssize_t idt_dbgfs_csr_write(struct file *filep, const char __user *ubuf,
964 if (colon_ch != NULL) { 964 if (colon_ch != NULL) {
965 csraddr_len = colon_ch - buf; 965 csraddr_len = colon_ch - buf;
966 csraddr_str = 966 csraddr_str =
967 kmalloc(sizeof(char)*(csraddr_len + 1), GFP_KERNEL); 967 kmalloc(csraddr_len + 1, GFP_KERNEL);
968 if (csraddr_str == NULL) { 968 if (csraddr_str == NULL) {
969 ret = -ENOMEM; 969 ret = -ENOMEM;
970 goto free_buf; 970 goto free_buf;
diff --git a/drivers/misc/genwqe/card_ddcb.c b/drivers/misc/genwqe/card_ddcb.c
index b7f8d35c17a9..656449cb4476 100644
--- a/drivers/misc/genwqe/card_ddcb.c
+++ b/drivers/misc/genwqe/card_ddcb.c
@@ -1048,15 +1048,16 @@ static int setup_ddcb_queue(struct genwqe_dev *cd, struct ddcb_queue *queue)
1048 "[%s] **err: could not allocate DDCB **\n", __func__); 1048 "[%s] **err: could not allocate DDCB **\n", __func__);
1049 return -ENOMEM; 1049 return -ENOMEM;
1050 } 1050 }
1051 queue->ddcb_req = kzalloc(sizeof(struct ddcb_requ *) * 1051 queue->ddcb_req = kcalloc(queue->ddcb_max, sizeof(struct ddcb_requ *),
1052 queue->ddcb_max, GFP_KERNEL); 1052 GFP_KERNEL);
1053 if (!queue->ddcb_req) { 1053 if (!queue->ddcb_req) {
1054 rc = -ENOMEM; 1054 rc = -ENOMEM;
1055 goto free_ddcbs; 1055 goto free_ddcbs;
1056 } 1056 }
1057 1057
1058 queue->ddcb_waitqs = kzalloc(sizeof(wait_queue_head_t) * 1058 queue->ddcb_waitqs = kcalloc(queue->ddcb_max,
1059 queue->ddcb_max, GFP_KERNEL); 1059 sizeof(wait_queue_head_t),
1060 GFP_KERNEL);
1060 if (!queue->ddcb_waitqs) { 1061 if (!queue->ddcb_waitqs) {
1061 rc = -ENOMEM; 1062 rc = -ENOMEM;
1062 goto free_requs; 1063 goto free_requs;
diff --git a/drivers/misc/sgi-xp/xpc_main.c b/drivers/misc/sgi-xp/xpc_main.c
index 0c775d6fcf59..83fc748a91a7 100644
--- a/drivers/misc/sgi-xp/xpc_main.c
+++ b/drivers/misc/sgi-xp/xpc_main.c
@@ -416,7 +416,8 @@ xpc_setup_ch_structures(struct xpc_partition *part)
416 * memory. 416 * memory.
417 */ 417 */
418 DBUG_ON(part->channels != NULL); 418 DBUG_ON(part->channels != NULL);
419 part->channels = kzalloc(sizeof(struct xpc_channel) * XPC_MAX_NCHANNELS, 419 part->channels = kcalloc(XPC_MAX_NCHANNELS,
420 sizeof(struct xpc_channel),
420 GFP_KERNEL); 421 GFP_KERNEL);
421 if (part->channels == NULL) { 422 if (part->channels == NULL) {
422 dev_err(xpc_chan, "can't get memory for channels\n"); 423 dev_err(xpc_chan, "can't get memory for channels\n");
@@ -905,8 +906,9 @@ xpc_setup_partitions(void)
905 short partid; 906 short partid;
906 struct xpc_partition *part; 907 struct xpc_partition *part;
907 908
908 xpc_partitions = kzalloc(sizeof(struct xpc_partition) * 909 xpc_partitions = kcalloc(xp_max_npartitions,
909 xp_max_npartitions, GFP_KERNEL); 910 sizeof(struct xpc_partition),
911 GFP_KERNEL);
910 if (xpc_partitions == NULL) { 912 if (xpc_partitions == NULL) {
911 dev_err(xpc_part, "can't get memory for partition structure\n"); 913 dev_err(xpc_part, "can't get memory for partition structure\n");
912 return -ENOMEM; 914 return -ENOMEM;
diff --git a/drivers/misc/sgi-xp/xpc_partition.c b/drivers/misc/sgi-xp/xpc_partition.c
index 6956f7e7d439..7284413dabfd 100644
--- a/drivers/misc/sgi-xp/xpc_partition.c
+++ b/drivers/misc/sgi-xp/xpc_partition.c
@@ -425,7 +425,7 @@ xpc_discovery(void)
425 if (remote_rp == NULL) 425 if (remote_rp == NULL)
426 return; 426 return;
427 427
428 discovered_nasids = kzalloc(sizeof(long) * xpc_nasid_mask_nlongs, 428 discovered_nasids = kcalloc(xpc_nasid_mask_nlongs, sizeof(long),
429 GFP_KERNEL); 429 GFP_KERNEL);
430 if (discovered_nasids == NULL) { 430 if (discovered_nasids == NULL) {
431 kfree(remote_rp_base); 431 kfree(remote_rp_base);
diff --git a/drivers/misc/sgi-xp/xpnet.c b/drivers/misc/sgi-xp/xpnet.c
index 216d5c756236..44d750d98bc8 100644
--- a/drivers/misc/sgi-xp/xpnet.c
+++ b/drivers/misc/sgi-xp/xpnet.c
@@ -520,8 +520,9 @@ xpnet_init(void)
520 520
521 dev_info(xpnet, "registering network device %s\n", XPNET_DEVICE_NAME); 521 dev_info(xpnet, "registering network device %s\n", XPNET_DEVICE_NAME);
522 522
523 xpnet_broadcast_partitions = kzalloc(BITS_TO_LONGS(xp_max_npartitions) * 523 xpnet_broadcast_partitions = kcalloc(BITS_TO_LONGS(xp_max_npartitions),
524 sizeof(long), GFP_KERNEL); 524 sizeof(long),
525 GFP_KERNEL);
525 if (xpnet_broadcast_partitions == NULL) 526 if (xpnet_broadcast_partitions == NULL)
526 return -ENOMEM; 527 return -ENOMEM;
527 528
diff --git a/drivers/misc/sram.c b/drivers/misc/sram.c
index fc0415771c00..c5dc6095686a 100644
--- a/drivers/misc/sram.c
+++ b/drivers/misc/sram.c
@@ -185,7 +185,7 @@ static int sram_reserve_regions(struct sram_dev *sram, struct resource *res)
185 * after the reserved blocks from the dt are processed. 185 * after the reserved blocks from the dt are processed.
186 */ 186 */
187 nblocks = (np) ? of_get_available_child_count(np) + 1 : 1; 187 nblocks = (np) ? of_get_available_child_count(np) + 1 : 1;
188 rblocks = kzalloc((nblocks) * sizeof(*rblocks), GFP_KERNEL); 188 rblocks = kcalloc(nblocks, sizeof(*rblocks), GFP_KERNEL);
189 if (!rblocks) 189 if (!rblocks)
190 return -ENOMEM; 190 return -ENOMEM;
191 191
@@ -264,8 +264,8 @@ static int sram_reserve_regions(struct sram_dev *sram, struct resource *res)
264 list_sort(NULL, &reserve_list, sram_reserve_cmp); 264 list_sort(NULL, &reserve_list, sram_reserve_cmp);
265 265
266 if (exports) { 266 if (exports) {
267 sram->partition = devm_kzalloc(sram->dev, 267 sram->partition = devm_kcalloc(sram->dev,
268 exports * sizeof(*sram->partition), 268 exports, sizeof(*sram->partition),
269 GFP_KERNEL); 269 GFP_KERNEL);
270 if (!sram->partition) { 270 if (!sram->partition) {
271 ret = -ENOMEM; 271 ret = -ENOMEM;
diff --git a/drivers/misc/vmw_vmci/vmci_queue_pair.c b/drivers/misc/vmw_vmci/vmci_queue_pair.c
index 0339538c182d..b4d7774cfe07 100644
--- a/drivers/misc/vmw_vmci/vmci_queue_pair.c
+++ b/drivers/misc/vmw_vmci/vmci_queue_pair.c
@@ -449,12 +449,14 @@ static int qp_alloc_ppn_set(void *prod_q,
449 return VMCI_ERROR_ALREADY_EXISTS; 449 return VMCI_ERROR_ALREADY_EXISTS;
450 450
451 produce_ppns = 451 produce_ppns =
452 kmalloc(num_produce_pages * sizeof(*produce_ppns), GFP_KERNEL); 452 kmalloc_array(num_produce_pages, sizeof(*produce_ppns),
453 GFP_KERNEL);
453 if (!produce_ppns) 454 if (!produce_ppns)
454 return VMCI_ERROR_NO_MEM; 455 return VMCI_ERROR_NO_MEM;
455 456
456 consume_ppns = 457 consume_ppns =
457 kmalloc(num_consume_pages * sizeof(*consume_ppns), GFP_KERNEL); 458 kmalloc_array(num_consume_pages, sizeof(*consume_ppns),
459 GFP_KERNEL);
458 if (!consume_ppns) { 460 if (!consume_ppns) {
459 kfree(produce_ppns); 461 kfree(produce_ppns);
460 return VMCI_ERROR_NO_MEM; 462 return VMCI_ERROR_NO_MEM;
diff --git a/drivers/mmc/host/sdhci-omap.c b/drivers/mmc/host/sdhci-omap.c
index f3a7c8ece4be..88347ce78f23 100644
--- a/drivers/mmc/host/sdhci-omap.c
+++ b/drivers/mmc/host/sdhci-omap.c
@@ -797,8 +797,10 @@ static int sdhci_omap_config_iodelay_pinctrl_state(struct sdhci_omap_host
797 if (!(omap_host->flags & SDHCI_OMAP_REQUIRE_IODELAY)) 797 if (!(omap_host->flags & SDHCI_OMAP_REQUIRE_IODELAY))
798 return 0; 798 return 0;
799 799
800 pinctrl_state = devm_kzalloc(dev, sizeof(*pinctrl_state) * 800 pinctrl_state = devm_kcalloc(dev,
801 (MMC_TIMING_MMC_HS200 + 1), GFP_KERNEL); 801 MMC_TIMING_MMC_HS200 + 1,
802 sizeof(*pinctrl_state),
803 GFP_KERNEL);
802 if (!pinctrl_state) 804 if (!pinctrl_state)
803 return -ENOMEM; 805 return -ENOMEM;
804 806
diff --git a/drivers/mtd/ar7part.c b/drivers/mtd/ar7part.c
index 90575deff0ae..fc15ec58230a 100644
--- a/drivers/mtd/ar7part.c
+++ b/drivers/mtd/ar7part.c
@@ -55,7 +55,7 @@ static int create_mtd_partitions(struct mtd_info *master,
55 int retries = 10; 55 int retries = 10;
56 struct mtd_partition *ar7_parts; 56 struct mtd_partition *ar7_parts;
57 57
58 ar7_parts = kzalloc(sizeof(*ar7_parts) * AR7_PARTS, GFP_KERNEL); 58 ar7_parts = kcalloc(AR7_PARTS, sizeof(*ar7_parts), GFP_KERNEL);
59 if (!ar7_parts) 59 if (!ar7_parts)
60 return -ENOMEM; 60 return -ENOMEM;
61 ar7_parts[0].name = "loader"; 61 ar7_parts[0].name = "loader";
diff --git a/drivers/mtd/bcm47xxpart.c b/drivers/mtd/bcm47xxpart.c
index 0f93d2239352..fc424b185b08 100644
--- a/drivers/mtd/bcm47xxpart.c
+++ b/drivers/mtd/bcm47xxpart.c
@@ -110,7 +110,7 @@ static int bcm47xxpart_parse(struct mtd_info *master,
110 blocksize = 0x1000; 110 blocksize = 0x1000;
111 111
112 /* Alloc */ 112 /* Alloc */
113 parts = kzalloc(sizeof(struct mtd_partition) * BCM47XXPART_MAX_PARTS, 113 parts = kcalloc(BCM47XXPART_MAX_PARTS, sizeof(struct mtd_partition),
114 GFP_KERNEL); 114 GFP_KERNEL);
115 if (!parts) 115 if (!parts)
116 return -ENOMEM; 116 return -ENOMEM;
diff --git a/drivers/mtd/chips/cfi_cmdset_0001.c b/drivers/mtd/chips/cfi_cmdset_0001.c
index f5695be14499..6e8e7b1bb34b 100644
--- a/drivers/mtd/chips/cfi_cmdset_0001.c
+++ b/drivers/mtd/chips/cfi_cmdset_0001.c
@@ -608,8 +608,9 @@ static struct mtd_info *cfi_intelext_setup(struct mtd_info *mtd)
608 mtd->size = devsize * cfi->numchips; 608 mtd->size = devsize * cfi->numchips;
609 609
610 mtd->numeraseregions = cfi->cfiq->NumEraseRegions * cfi->numchips; 610 mtd->numeraseregions = cfi->cfiq->NumEraseRegions * cfi->numchips;
611 mtd->eraseregions = kzalloc(sizeof(struct mtd_erase_region_info) 611 mtd->eraseregions = kcalloc(mtd->numeraseregions,
612 * mtd->numeraseregions, GFP_KERNEL); 612 sizeof(struct mtd_erase_region_info),
613 GFP_KERNEL);
613 if (!mtd->eraseregions) 614 if (!mtd->eraseregions)
614 goto setup_err; 615 goto setup_err;
615 616
@@ -758,7 +759,9 @@ static int cfi_intelext_partition_fixup(struct mtd_info *mtd,
758 newcfi = kmalloc(sizeof(struct cfi_private) + numvirtchips * sizeof(struct flchip), GFP_KERNEL); 759 newcfi = kmalloc(sizeof(struct cfi_private) + numvirtchips * sizeof(struct flchip), GFP_KERNEL);
759 if (!newcfi) 760 if (!newcfi)
760 return -ENOMEM; 761 return -ENOMEM;
761 shared = kmalloc(sizeof(struct flchip_shared) * cfi->numchips, GFP_KERNEL); 762 shared = kmalloc_array(cfi->numchips,
763 sizeof(struct flchip_shared),
764 GFP_KERNEL);
762 if (!shared) { 765 if (!shared) {
763 kfree(newcfi); 766 kfree(newcfi);
764 return -ENOMEM; 767 return -ENOMEM;
diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c b/drivers/mtd/chips/cfi_cmdset_0002.c
index 7c889eca9ab0..a0c655628d6d 100644
--- a/drivers/mtd/chips/cfi_cmdset_0002.c
+++ b/drivers/mtd/chips/cfi_cmdset_0002.c
@@ -692,8 +692,9 @@ static struct mtd_info *cfi_amdstd_setup(struct mtd_info *mtd)
692 mtd->size = devsize * cfi->numchips; 692 mtd->size = devsize * cfi->numchips;
693 693
694 mtd->numeraseregions = cfi->cfiq->NumEraseRegions * cfi->numchips; 694 mtd->numeraseregions = cfi->cfiq->NumEraseRegions * cfi->numchips;
695 mtd->eraseregions = kmalloc(sizeof(struct mtd_erase_region_info) 695 mtd->eraseregions = kmalloc_array(mtd->numeraseregions,
696 * mtd->numeraseregions, GFP_KERNEL); 696 sizeof(struct mtd_erase_region_info),
697 GFP_KERNEL);
697 if (!mtd->eraseregions) 698 if (!mtd->eraseregions)
698 goto setup_err; 699 goto setup_err;
699 700
@@ -2635,7 +2636,7 @@ static int __maybe_unused cfi_ppb_unlock(struct mtd_info *mtd, loff_t ofs,
2635 * first check the locking status of all sectors and save 2636 * first check the locking status of all sectors and save
2636 * it for future use. 2637 * it for future use.
2637 */ 2638 */
2638 sect = kzalloc(MAX_SECTORS * sizeof(struct ppb_lock), GFP_KERNEL); 2639 sect = kcalloc(MAX_SECTORS, sizeof(struct ppb_lock), GFP_KERNEL);
2639 if (!sect) 2640 if (!sect)
2640 return -ENOMEM; 2641 return -ENOMEM;
2641 2642
diff --git a/drivers/mtd/chips/cfi_cmdset_0020.c b/drivers/mtd/chips/cfi_cmdset_0020.c
index 7b7658a05036..35aa72b720a6 100644
--- a/drivers/mtd/chips/cfi_cmdset_0020.c
+++ b/drivers/mtd/chips/cfi_cmdset_0020.c
@@ -184,8 +184,9 @@ static struct mtd_info *cfi_staa_setup(struct map_info *map)
184 mtd->size = devsize * cfi->numchips; 184 mtd->size = devsize * cfi->numchips;
185 185
186 mtd->numeraseregions = cfi->cfiq->NumEraseRegions * cfi->numchips; 186 mtd->numeraseregions = cfi->cfiq->NumEraseRegions * cfi->numchips;
187 mtd->eraseregions = kmalloc(sizeof(struct mtd_erase_region_info) 187 mtd->eraseregions = kmalloc_array(mtd->numeraseregions,
188 * mtd->numeraseregions, GFP_KERNEL); 188 sizeof(struct mtd_erase_region_info),
189 GFP_KERNEL);
189 if (!mtd->eraseregions) { 190 if (!mtd->eraseregions) {
190 kfree(cfi->cmdset_priv); 191 kfree(cfi->cmdset_priv);
191 kfree(mtd); 192 kfree(mtd);
diff --git a/drivers/mtd/devices/docg3.c b/drivers/mtd/devices/docg3.c
index 802d8f159e90..512bd4c2eec0 100644
--- a/drivers/mtd/devices/docg3.c
+++ b/drivers/mtd/devices/docg3.c
@@ -1827,7 +1827,7 @@ doc_probe_device(struct docg3_cascade *cascade, int floor, struct device *dev)
1827 mtd->dev.parent = dev; 1827 mtd->dev.parent = dev;
1828 bbt_nbpages = DIV_ROUND_UP(docg3->max_block + 1, 1828 bbt_nbpages = DIV_ROUND_UP(docg3->max_block + 1,
1829 8 * DOC_LAYOUT_PAGE_SIZE); 1829 8 * DOC_LAYOUT_PAGE_SIZE);
1830 docg3->bbt = kzalloc(bbt_nbpages * DOC_LAYOUT_PAGE_SIZE, GFP_KERNEL); 1830 docg3->bbt = kcalloc(DOC_LAYOUT_PAGE_SIZE, bbt_nbpages, GFP_KERNEL);
1831 if (!docg3->bbt) 1831 if (!docg3->bbt)
1832 goto nomem3; 1832 goto nomem3;
1833 1833
@@ -1993,7 +1993,7 @@ static int __init docg3_probe(struct platform_device *pdev)
1993 base = devm_ioremap(dev, ress->start, DOC_IOSPACE_SIZE); 1993 base = devm_ioremap(dev, ress->start, DOC_IOSPACE_SIZE);
1994 1994
1995 ret = -ENOMEM; 1995 ret = -ENOMEM;
1996 cascade = devm_kzalloc(dev, sizeof(*cascade) * DOC_MAX_NBFLOORS, 1996 cascade = devm_kcalloc(dev, DOC_MAX_NBFLOORS, sizeof(*cascade),
1997 GFP_KERNEL); 1997 GFP_KERNEL);
1998 if (!cascade) 1998 if (!cascade)
1999 return ret; 1999 return ret;
diff --git a/drivers/mtd/ftl.c b/drivers/mtd/ftl.c
index ef6ad2551d57..2578f27914ef 100644
--- a/drivers/mtd/ftl.c
+++ b/drivers/mtd/ftl.c
@@ -201,15 +201,16 @@ static int build_maps(partition_t *part)
201 /* Set up erase unit maps */ 201 /* Set up erase unit maps */
202 part->DataUnits = le16_to_cpu(part->header.NumEraseUnits) - 202 part->DataUnits = le16_to_cpu(part->header.NumEraseUnits) -
203 part->header.NumTransferUnits; 203 part->header.NumTransferUnits;
204 part->EUNInfo = kmalloc(part->DataUnits * sizeof(struct eun_info_t), 204 part->EUNInfo = kmalloc_array(part->DataUnits, sizeof(struct eun_info_t),
205 GFP_KERNEL); 205 GFP_KERNEL);
206 if (!part->EUNInfo) 206 if (!part->EUNInfo)
207 goto out; 207 goto out;
208 for (i = 0; i < part->DataUnits; i++) 208 for (i = 0; i < part->DataUnits; i++)
209 part->EUNInfo[i].Offset = 0xffffffff; 209 part->EUNInfo[i].Offset = 0xffffffff;
210 part->XferInfo = 210 part->XferInfo =
211 kmalloc(part->header.NumTransferUnits * sizeof(struct xfer_info_t), 211 kmalloc_array(part->header.NumTransferUnits,
212 GFP_KERNEL); 212 sizeof(struct xfer_info_t),
213 GFP_KERNEL);
213 if (!part->XferInfo) 214 if (!part->XferInfo)
214 goto out_EUNInfo; 215 goto out_EUNInfo;
215 216
@@ -262,15 +263,15 @@ static int build_maps(partition_t *part)
262 263
263 /* Set up virtual page map */ 264 /* Set up virtual page map */
264 blocks = le32_to_cpu(header.FormattedSize) >> header.BlockSize; 265 blocks = le32_to_cpu(header.FormattedSize) >> header.BlockSize;
265 part->VirtualBlockMap = vmalloc(blocks * sizeof(uint32_t)); 266 part->VirtualBlockMap = vmalloc(array_size(blocks, sizeof(uint32_t)));
266 if (!part->VirtualBlockMap) 267 if (!part->VirtualBlockMap)
267 goto out_XferInfo; 268 goto out_XferInfo;
268 269
269 memset(part->VirtualBlockMap, 0xff, blocks * sizeof(uint32_t)); 270 memset(part->VirtualBlockMap, 0xff, blocks * sizeof(uint32_t));
270 part->BlocksPerUnit = (1 << header.EraseUnitSize) >> header.BlockSize; 271 part->BlocksPerUnit = (1 << header.EraseUnitSize) >> header.BlockSize;
271 272
272 part->bam_cache = kmalloc(part->BlocksPerUnit * sizeof(uint32_t), 273 part->bam_cache = kmalloc_array(part->BlocksPerUnit, sizeof(uint32_t),
273 GFP_KERNEL); 274 GFP_KERNEL);
274 if (!part->bam_cache) 275 if (!part->bam_cache)
275 goto out_VirtualBlockMap; 276 goto out_VirtualBlockMap;
276 277
diff --git a/drivers/mtd/inftlmount.c b/drivers/mtd/inftlmount.c
index 2d598412972d..10d977e9709d 100644
--- a/drivers/mtd/inftlmount.c
+++ b/drivers/mtd/inftlmount.c
@@ -270,7 +270,8 @@ static int find_boot_record(struct INFTLrecord *inftl)
270 inftl->nb_blocks = ip->lastUnit + 1; 270 inftl->nb_blocks = ip->lastUnit + 1;
271 271
272 /* Memory alloc */ 272 /* Memory alloc */
273 inftl->PUtable = kmalloc(inftl->nb_blocks * sizeof(u16), GFP_KERNEL); 273 inftl->PUtable = kmalloc_array(inftl->nb_blocks, sizeof(u16),
274 GFP_KERNEL);
274 if (!inftl->PUtable) { 275 if (!inftl->PUtable) {
275 printk(KERN_WARNING "INFTL: allocation of PUtable " 276 printk(KERN_WARNING "INFTL: allocation of PUtable "
276 "failed (%zd bytes)\n", 277 "failed (%zd bytes)\n",
@@ -278,7 +279,8 @@ static int find_boot_record(struct INFTLrecord *inftl)
278 return -ENOMEM; 279 return -ENOMEM;
279 } 280 }
280 281
281 inftl->VUtable = kmalloc(inftl->nb_blocks * sizeof(u16), GFP_KERNEL); 282 inftl->VUtable = kmalloc_array(inftl->nb_blocks, sizeof(u16),
283 GFP_KERNEL);
282 if (!inftl->VUtable) { 284 if (!inftl->VUtable) {
283 kfree(inftl->PUtable); 285 kfree(inftl->PUtable);
284 printk(KERN_WARNING "INFTL: allocation of VUtable " 286 printk(KERN_WARNING "INFTL: allocation of VUtable "
diff --git a/drivers/mtd/lpddr/lpddr_cmds.c b/drivers/mtd/lpddr/lpddr_cmds.c
index 5c5ba3c7c79d..b13557fe52bd 100644
--- a/drivers/mtd/lpddr/lpddr_cmds.c
+++ b/drivers/mtd/lpddr/lpddr_cmds.c
@@ -78,7 +78,7 @@ struct mtd_info *lpddr_cmdset(struct map_info *map)
78 mtd->erasesize = 1 << lpddr->qinfo->UniformBlockSizeShift; 78 mtd->erasesize = 1 << lpddr->qinfo->UniformBlockSizeShift;
79 mtd->writesize = 1 << lpddr->qinfo->BufSizeShift; 79 mtd->writesize = 1 << lpddr->qinfo->BufSizeShift;
80 80
81 shared = kmalloc(sizeof(struct flchip_shared) * lpddr->numchips, 81 shared = kmalloc_array(lpddr->numchips, sizeof(struct flchip_shared),
82 GFP_KERNEL); 82 GFP_KERNEL);
83 if (!shared) { 83 if (!shared) {
84 kfree(lpddr); 84 kfree(lpddr);
diff --git a/drivers/mtd/maps/physmap_of_core.c b/drivers/mtd/maps/physmap_of_core.c
index 527b1682381f..4129535b8e46 100644
--- a/drivers/mtd/maps/physmap_of_core.c
+++ b/drivers/mtd/maps/physmap_of_core.c
@@ -124,7 +124,7 @@ static const char * const *of_get_probes(struct device_node *dp)
124 if (count < 0) 124 if (count < 0)
125 return part_probe_types_def; 125 return part_probe_types_def;
126 126
127 res = kzalloc((count + 1) * sizeof(*res), GFP_KERNEL); 127 res = kcalloc(count + 1, sizeof(*res), GFP_KERNEL);
128 if (!res) 128 if (!res)
129 return NULL; 129 return NULL;
130 130
@@ -197,7 +197,7 @@ static int of_flash_probe(struct platform_device *dev)
197 197
198 dev_set_drvdata(&dev->dev, info); 198 dev_set_drvdata(&dev->dev, info);
199 199
200 mtd_list = kzalloc(sizeof(*mtd_list) * count, GFP_KERNEL); 200 mtd_list = kcalloc(count, sizeof(*mtd_list), GFP_KERNEL);
201 if (!mtd_list) 201 if (!mtd_list)
202 goto err_flash_remove; 202 goto err_flash_remove;
203 203
diff --git a/drivers/mtd/maps/vmu-flash.c b/drivers/mtd/maps/vmu-flash.c
index 6b223cfe92b7..c5d4b6589488 100644
--- a/drivers/mtd/maps/vmu-flash.c
+++ b/drivers/mtd/maps/vmu-flash.c
@@ -629,15 +629,15 @@ static int vmu_connect(struct maple_device *mdev)
629 * Not sure there are actually any multi-partition devices in the 629 * Not sure there are actually any multi-partition devices in the
630 * real world, but the hardware supports them, so, so will we 630 * real world, but the hardware supports them, so, so will we
631 */ 631 */
632 card->parts = kmalloc(sizeof(struct vmupart) * card->partitions, 632 card->parts = kmalloc_array(card->partitions, sizeof(struct vmupart),
633 GFP_KERNEL); 633 GFP_KERNEL);
634 if (!card->parts) { 634 if (!card->parts) {
635 error = -ENOMEM; 635 error = -ENOMEM;
636 goto fail_partitions; 636 goto fail_partitions;
637 } 637 }
638 638
639 card->mtd = kmalloc(sizeof(struct mtd_info) * card->partitions, 639 card->mtd = kmalloc_array(card->partitions, sizeof(struct mtd_info),
640 GFP_KERNEL); 640 GFP_KERNEL);
641 if (!card->mtd) { 641 if (!card->mtd) {
642 error = -ENOMEM; 642 error = -ENOMEM;
643 goto fail_mtd_info; 643 goto fail_mtd_info;
diff --git a/drivers/mtd/mtdconcat.c b/drivers/mtd/mtdconcat.c
index 6b86d1a73cf2..cbc5925e6440 100644
--- a/drivers/mtd/mtdconcat.c
+++ b/drivers/mtd/mtdconcat.c
@@ -778,8 +778,9 @@ struct mtd_info *mtd_concat_create(struct mtd_info *subdev[], /* subdevices to c
778 concat->mtd.erasesize = max_erasesize; 778 concat->mtd.erasesize = max_erasesize;
779 concat->mtd.numeraseregions = num_erase_region; 779 concat->mtd.numeraseregions = num_erase_region;
780 concat->mtd.eraseregions = erase_region_p = 780 concat->mtd.eraseregions = erase_region_p =
781 kmalloc(num_erase_region * 781 kmalloc_array(num_erase_region,
782 sizeof (struct mtd_erase_region_info), GFP_KERNEL); 782 sizeof(struct mtd_erase_region_info),
783 GFP_KERNEL);
783 if (!erase_region_p) { 784 if (!erase_region_p) {
784 kfree(concat); 785 kfree(concat);
785 printk 786 printk
diff --git a/drivers/mtd/mtdoops.c b/drivers/mtd/mtdoops.c
index 9f25111fd559..e078fc41aa61 100644
--- a/drivers/mtd/mtdoops.c
+++ b/drivers/mtd/mtdoops.c
@@ -330,8 +330,10 @@ static void mtdoops_notify_add(struct mtd_info *mtd)
330 } 330 }
331 331
332 /* oops_page_used is a bit field */ 332 /* oops_page_used is a bit field */
333 cxt->oops_page_used = vmalloc(DIV_ROUND_UP(mtdoops_pages, 333 cxt->oops_page_used =
334 BITS_PER_LONG) * sizeof(unsigned long)); 334 vmalloc(array_size(sizeof(unsigned long),
335 DIV_ROUND_UP(mtdoops_pages,
336 BITS_PER_LONG)));
335 if (!cxt->oops_page_used) { 337 if (!cxt->oops_page_used) {
336 printk(KERN_ERR "mtdoops: could not allocate page array\n"); 338 printk(KERN_ERR "mtdoops: could not allocate page array\n");
337 return; 339 return;
diff --git a/drivers/mtd/mtdswap.c b/drivers/mtd/mtdswap.c
index 7161f8a17f62..d9dcb2d051b4 100644
--- a/drivers/mtd/mtdswap.c
+++ b/drivers/mtd/mtdswap.c
@@ -1317,11 +1317,11 @@ static int mtdswap_init(struct mtdswap_dev *d, unsigned int eblocks,
1317 for (i = 0; i < MTDSWAP_TREE_CNT; i++) 1317 for (i = 0; i < MTDSWAP_TREE_CNT; i++)
1318 d->trees[i].root = RB_ROOT; 1318 d->trees[i].root = RB_ROOT;
1319 1319
1320 d->page_data = vmalloc(sizeof(int)*pages); 1320 d->page_data = vmalloc(array_size(pages, sizeof(int)));
1321 if (!d->page_data) 1321 if (!d->page_data)
1322 goto page_data_fail; 1322 goto page_data_fail;
1323 1323
1324 d->revmap = vmalloc(sizeof(int)*blocks); 1324 d->revmap = vmalloc(array_size(blocks, sizeof(int)));
1325 if (!d->revmap) 1325 if (!d->revmap)
1326 goto revmap_fail; 1326 goto revmap_fail;
1327 1327
@@ -1340,7 +1340,7 @@ static int mtdswap_init(struct mtdswap_dev *d, unsigned int eblocks,
1340 if (!d->page_buf) 1340 if (!d->page_buf)
1341 goto page_buf_fail; 1341 goto page_buf_fail;
1342 1342
1343 d->oob_buf = kmalloc(2 * mtd->oobavail, GFP_KERNEL); 1343 d->oob_buf = kmalloc_array(2, mtd->oobavail, GFP_KERNEL);
1344 if (!d->oob_buf) 1344 if (!d->oob_buf)
1345 goto oob_buf_fail; 1345 goto oob_buf_fail;
1346 1346
diff --git a/drivers/mtd/nand/onenand/onenand_base.c b/drivers/mtd/nand/onenand/onenand_base.c
index b7105192cb12..4ca4b194e7d7 100644
--- a/drivers/mtd/nand/onenand/onenand_base.c
+++ b/drivers/mtd/nand/onenand/onenand_base.c
@@ -3721,8 +3721,10 @@ static int onenand_probe(struct mtd_info *mtd)
3721 this->dies = ONENAND_IS_DDP(this) ? 2 : 1; 3721 this->dies = ONENAND_IS_DDP(this) ? 2 : 1;
3722 /* Maximum possible erase regions */ 3722 /* Maximum possible erase regions */
3723 mtd->numeraseregions = this->dies << 1; 3723 mtd->numeraseregions = this->dies << 1;
3724 mtd->eraseregions = kzalloc(sizeof(struct mtd_erase_region_info) 3724 mtd->eraseregions =
3725 * (this->dies << 1), GFP_KERNEL); 3725 kcalloc(this->dies << 1,
3726 sizeof(struct mtd_erase_region_info),
3727 GFP_KERNEL);
3726 if (!mtd->eraseregions) 3728 if (!mtd->eraseregions)
3727 return -ENOMEM; 3729 return -ENOMEM;
3728 } 3730 }
diff --git a/drivers/mtd/nand/raw/nand_bch.c b/drivers/mtd/nand/raw/nand_bch.c
index 7f11b68f6db1..b7387ace567a 100644
--- a/drivers/mtd/nand/raw/nand_bch.c
+++ b/drivers/mtd/nand/raw/nand_bch.c
@@ -186,7 +186,7 @@ struct nand_bch_control *nand_bch_init(struct mtd_info *mtd)
186 } 186 }
187 187
188 nbc->eccmask = kmalloc(eccbytes, GFP_KERNEL); 188 nbc->eccmask = kmalloc(eccbytes, GFP_KERNEL);
189 nbc->errloc = kmalloc(t*sizeof(*nbc->errloc), GFP_KERNEL); 189 nbc->errloc = kmalloc_array(t, sizeof(*nbc->errloc), GFP_KERNEL);
190 if (!nbc->eccmask || !nbc->errloc) 190 if (!nbc->eccmask || !nbc->errloc)
191 goto fail; 191 goto fail;
192 /* 192 /*
diff --git a/drivers/mtd/nand/raw/nandsim.c b/drivers/mtd/nand/raw/nandsim.c
index e027c6f9d327..f8edacde49ab 100644
--- a/drivers/mtd/nand/raw/nandsim.c
+++ b/drivers/mtd/nand/raw/nandsim.c
@@ -565,8 +565,9 @@ static int __init alloc_device(struct nandsim *ns)
565 err = -EINVAL; 565 err = -EINVAL;
566 goto err_close; 566 goto err_close;
567 } 567 }
568 ns->pages_written = vzalloc(BITS_TO_LONGS(ns->geom.pgnum) * 568 ns->pages_written =
569 sizeof(unsigned long)); 569 vzalloc(array_size(sizeof(unsigned long),
570 BITS_TO_LONGS(ns->geom.pgnum)));
570 if (!ns->pages_written) { 571 if (!ns->pages_written) {
571 NS_ERR("alloc_device: unable to allocate pages written array\n"); 572 NS_ERR("alloc_device: unable to allocate pages written array\n");
572 err = -ENOMEM; 573 err = -ENOMEM;
@@ -582,7 +583,7 @@ static int __init alloc_device(struct nandsim *ns)
582 return 0; 583 return 0;
583 } 584 }
584 585
585 ns->pages = vmalloc(ns->geom.pgnum * sizeof(union ns_mem)); 586 ns->pages = vmalloc(array_size(sizeof(union ns_mem), ns->geom.pgnum));
586 if (!ns->pages) { 587 if (!ns->pages) {
587 NS_ERR("alloc_device: unable to allocate page array\n"); 588 NS_ERR("alloc_device: unable to allocate page array\n");
588 return -ENOMEM; 589 return -ENOMEM;
diff --git a/drivers/mtd/nand/raw/qcom_nandc.c b/drivers/mtd/nand/raw/qcom_nandc.c
index b554fb6e609c..6a5519f0ff25 100644
--- a/drivers/mtd/nand/raw/qcom_nandc.c
+++ b/drivers/mtd/nand/raw/qcom_nandc.c
@@ -2510,8 +2510,8 @@ static int qcom_nandc_alloc(struct qcom_nand_controller *nandc)
2510 if (!nandc->regs) 2510 if (!nandc->regs)
2511 return -ENOMEM; 2511 return -ENOMEM;
2512 2512
2513 nandc->reg_read_buf = devm_kzalloc(nandc->dev, 2513 nandc->reg_read_buf = devm_kcalloc(nandc->dev,
2514 MAX_REG_RD * sizeof(*nandc->reg_read_buf), 2514 MAX_REG_RD, sizeof(*nandc->reg_read_buf),
2515 GFP_KERNEL); 2515 GFP_KERNEL);
2516 if (!nandc->reg_read_buf) 2516 if (!nandc->reg_read_buf)
2517 return -ENOMEM; 2517 return -ENOMEM;
diff --git a/drivers/mtd/nand/raw/s3c2410.c b/drivers/mtd/nand/raw/s3c2410.c
index 1bc0458063d8..19661c5d3220 100644
--- a/drivers/mtd/nand/raw/s3c2410.c
+++ b/drivers/mtd/nand/raw/s3c2410.c
@@ -1038,7 +1038,7 @@ static int s3c24xx_nand_probe_dt(struct platform_device *pdev)
1038 if (!pdata->nr_sets) 1038 if (!pdata->nr_sets)
1039 return 0; 1039 return 0;
1040 1040
1041 sets = devm_kzalloc(&pdev->dev, sizeof(*sets) * pdata->nr_sets, 1041 sets = devm_kcalloc(&pdev->dev, pdata->nr_sets, sizeof(*sets),
1042 GFP_KERNEL); 1042 GFP_KERNEL);
1043 if (!sets) 1043 if (!sets)
1044 return -ENOMEM; 1044 return -ENOMEM;
diff --git a/drivers/mtd/nftlmount.c b/drivers/mtd/nftlmount.c
index 6281da3dadac..27184e3874db 100644
--- a/drivers/mtd/nftlmount.c
+++ b/drivers/mtd/nftlmount.c
@@ -199,13 +199,16 @@ device is already correct.
199 nftl->lastEUN = nftl->nb_blocks - 1; 199 nftl->lastEUN = nftl->nb_blocks - 1;
200 200
201 /* memory alloc */ 201 /* memory alloc */
202 nftl->EUNtable = kmalloc(nftl->nb_blocks * sizeof(u16), GFP_KERNEL); 202 nftl->EUNtable = kmalloc_array(nftl->nb_blocks, sizeof(u16),
203 GFP_KERNEL);
203 if (!nftl->EUNtable) { 204 if (!nftl->EUNtable) {
204 printk(KERN_NOTICE "NFTL: allocation of EUNtable failed\n"); 205 printk(KERN_NOTICE "NFTL: allocation of EUNtable failed\n");
205 return -ENOMEM; 206 return -ENOMEM;
206 } 207 }
207 208
208 nftl->ReplUnitTable = kmalloc(nftl->nb_blocks * sizeof(u16), GFP_KERNEL); 209 nftl->ReplUnitTable = kmalloc_array(nftl->nb_blocks,
210 sizeof(u16),
211 GFP_KERNEL);
209 if (!nftl->ReplUnitTable) { 212 if (!nftl->ReplUnitTable) {
210 kfree(nftl->EUNtable); 213 kfree(nftl->EUNtable);
211 printk(KERN_NOTICE "NFTL: allocation of ReplUnitTable failed\n"); 214 printk(KERN_NOTICE "NFTL: allocation of ReplUnitTable failed\n");
diff --git a/drivers/mtd/ofpart.c b/drivers/mtd/ofpart.c
index 615f8c173162..6b21a92d3622 100644
--- a/drivers/mtd/ofpart.c
+++ b/drivers/mtd/ofpart.c
@@ -71,7 +71,7 @@ static int parse_fixed_partitions(struct mtd_info *master,
71 if (nr_parts == 0) 71 if (nr_parts == 0)
72 return 0; 72 return 0;
73 73
74 parts = kzalloc(nr_parts * sizeof(*parts), GFP_KERNEL); 74 parts = kcalloc(nr_parts, sizeof(*parts), GFP_KERNEL);
75 if (!parts) 75 if (!parts)
76 return -ENOMEM; 76 return -ENOMEM;
77 77
@@ -177,7 +177,7 @@ static int parse_ofoldpart_partitions(struct mtd_info *master,
177 177
178 nr_parts = plen / sizeof(part[0]); 178 nr_parts = plen / sizeof(part[0]);
179 179
180 parts = kzalloc(nr_parts * sizeof(*parts), GFP_KERNEL); 180 parts = kcalloc(nr_parts, sizeof(*parts), GFP_KERNEL);
181 if (!parts) 181 if (!parts)
182 return -ENOMEM; 182 return -ENOMEM;
183 183
diff --git a/drivers/mtd/parsers/parser_trx.c b/drivers/mtd/parsers/parser_trx.c
index df360a75e1eb..17ac33599783 100644
--- a/drivers/mtd/parsers/parser_trx.c
+++ b/drivers/mtd/parsers/parser_trx.c
@@ -62,7 +62,7 @@ static int parser_trx_parse(struct mtd_info *mtd,
62 uint8_t curr_part = 0, i = 0; 62 uint8_t curr_part = 0, i = 0;
63 int err; 63 int err;
64 64
65 parts = kzalloc(sizeof(struct mtd_partition) * TRX_PARSER_MAX_PARTS, 65 parts = kcalloc(TRX_PARSER_MAX_PARTS, sizeof(struct mtd_partition),
66 GFP_KERNEL); 66 GFP_KERNEL);
67 if (!parts) 67 if (!parts)
68 return -ENOMEM; 68 return -ENOMEM;
diff --git a/drivers/mtd/parsers/sharpslpart.c b/drivers/mtd/parsers/sharpslpart.c
index 8893dc82a5c8..e5ea6127ab5a 100644
--- a/drivers/mtd/parsers/sharpslpart.c
+++ b/drivers/mtd/parsers/sharpslpart.c
@@ -362,8 +362,9 @@ static int sharpsl_parse_mtd_partitions(struct mtd_info *master,
362 return err; 362 return err;
363 } 363 }
364 364
365 sharpsl_nand_parts = kzalloc(sizeof(*sharpsl_nand_parts) * 365 sharpsl_nand_parts = kcalloc(SHARPSL_NAND_PARTS,
366 SHARPSL_NAND_PARTS, GFP_KERNEL); 366 sizeof(*sharpsl_nand_parts),
367 GFP_KERNEL);
367 if (!sharpsl_nand_parts) 368 if (!sharpsl_nand_parts)
368 return -ENOMEM; 369 return -ENOMEM;
369 370
diff --git a/drivers/mtd/rfd_ftl.c b/drivers/mtd/rfd_ftl.c
index df27f24ce0fa..94720f2ca9a8 100644
--- a/drivers/mtd/rfd_ftl.c
+++ b/drivers/mtd/rfd_ftl.c
@@ -189,7 +189,8 @@ static int scan_header(struct partition *part)
189 if (!part->blocks) 189 if (!part->blocks)
190 goto err; 190 goto err;
191 191
192 part->sector_map = vmalloc(part->sector_count * sizeof(u_long)); 192 part->sector_map = vmalloc(array_size(sizeof(u_long),
193 part->sector_count));
193 if (!part->sector_map) { 194 if (!part->sector_map) {
194 printk(KERN_ERR PREFIX "'%s': unable to allocate memory for " 195 printk(KERN_ERR PREFIX "'%s': unable to allocate memory for "
195 "sector map", part->mbd.mtd->name); 196 "sector map", part->mbd.mtd->name);
diff --git a/drivers/mtd/sm_ftl.c b/drivers/mtd/sm_ftl.c
index 79636349df96..f3bd86e13603 100644
--- a/drivers/mtd/sm_ftl.c
+++ b/drivers/mtd/sm_ftl.c
@@ -82,7 +82,7 @@ static struct attribute_group *sm_create_sysfs_attributes(struct sm_ftl *ftl)
82 82
83 83
84 /* Create array of pointers to the attributes */ 84 /* Create array of pointers to the attributes */
85 attributes = kzalloc(sizeof(struct attribute *) * (NUM_ATTRIBUTES + 1), 85 attributes = kcalloc(NUM_ATTRIBUTES + 1, sizeof(struct attribute *),
86 GFP_KERNEL); 86 GFP_KERNEL);
87 if (!attributes) 87 if (!attributes)
88 goto error3; 88 goto error3;
@@ -750,7 +750,7 @@ static int sm_init_zone(struct sm_ftl *ftl, int zone_num)
750 dbg("initializing zone %d", zone_num); 750 dbg("initializing zone %d", zone_num);
751 751
752 /* Allocate memory for FTL table */ 752 /* Allocate memory for FTL table */
753 zone->lba_to_phys_table = kmalloc(ftl->max_lba * 2, GFP_KERNEL); 753 zone->lba_to_phys_table = kmalloc_array(ftl->max_lba, 2, GFP_KERNEL);
754 754
755 if (!zone->lba_to_phys_table) 755 if (!zone->lba_to_phys_table)
756 return -ENOMEM; 756 return -ENOMEM;
@@ -1137,7 +1137,7 @@ static void sm_add_mtd(struct mtd_blktrans_ops *tr, struct mtd_info *mtd)
1137 goto error2; 1137 goto error2;
1138 1138
1139 /* Allocate zone array, it will be initialized on demand */ 1139 /* Allocate zone array, it will be initialized on demand */
1140 ftl->zones = kzalloc(sizeof(struct ftl_zone) * ftl->zone_count, 1140 ftl->zones = kcalloc(ftl->zone_count, sizeof(struct ftl_zone),
1141 GFP_KERNEL); 1141 GFP_KERNEL);
1142 if (!ftl->zones) 1142 if (!ftl->zones)
1143 goto error3; 1143 goto error3;
diff --git a/drivers/mtd/ssfdc.c b/drivers/mtd/ssfdc.c
index 95f0bf95f095..7a1e54546f4a 100644
--- a/drivers/mtd/ssfdc.c
+++ b/drivers/mtd/ssfdc.c
@@ -332,8 +332,9 @@ static void ssfdcr_add_mtd(struct mtd_blktrans_ops *tr, struct mtd_info *mtd)
332 (long)ssfdc->sectors; 332 (long)ssfdc->sectors;
333 333
334 /* Allocate logical block map */ 334 /* Allocate logical block map */
335 ssfdc->logic_block_map = kmalloc(sizeof(ssfdc->logic_block_map[0]) * 335 ssfdc->logic_block_map =
336 ssfdc->map_len, GFP_KERNEL); 336 kmalloc_array(ssfdc->map_len,
337 sizeof(ssfdc->logic_block_map[0]), GFP_KERNEL);
337 if (!ssfdc->logic_block_map) 338 if (!ssfdc->logic_block_map)
338 goto out_err; 339 goto out_err;
339 memset(ssfdc->logic_block_map, 0xff, sizeof(ssfdc->logic_block_map[0]) * 340 memset(ssfdc->logic_block_map, 0xff, sizeof(ssfdc->logic_block_map[0]) *
diff --git a/drivers/mtd/tests/pagetest.c b/drivers/mtd/tests/pagetest.c
index bc303cac9f43..75687369bc20 100644
--- a/drivers/mtd/tests/pagetest.c
+++ b/drivers/mtd/tests/pagetest.c
@@ -127,7 +127,7 @@ static int crosstest(void)
127 unsigned char *pp1, *pp2, *pp3, *pp4; 127 unsigned char *pp1, *pp2, *pp3, *pp4;
128 128
129 pr_info("crosstest\n"); 129 pr_info("crosstest\n");
130 pp1 = kzalloc(pgsize * 4, GFP_KERNEL); 130 pp1 = kcalloc(pgsize, 4, GFP_KERNEL);
131 if (!pp1) 131 if (!pp1)
132 return -ENOMEM; 132 return -ENOMEM;
133 pp2 = pp1 + pgsize; 133 pp2 = pp1 + pgsize;
diff --git a/drivers/mtd/tests/stresstest.c b/drivers/mtd/tests/stresstest.c
index e509f8aa9a7e..0fe1217f94b9 100644
--- a/drivers/mtd/tests/stresstest.c
+++ b/drivers/mtd/tests/stresstest.c
@@ -199,7 +199,7 @@ static int __init mtd_stresstest_init(void)
199 err = -ENOMEM; 199 err = -ENOMEM;
200 readbuf = vmalloc(bufsize); 200 readbuf = vmalloc(bufsize);
201 writebuf = vmalloc(bufsize); 201 writebuf = vmalloc(bufsize);
202 offsets = kmalloc(ebcnt * sizeof(int), GFP_KERNEL); 202 offsets = kmalloc_array(ebcnt, sizeof(int), GFP_KERNEL);
203 if (!readbuf || !writebuf || !offsets) 203 if (!readbuf || !writebuf || !offsets)
204 goto out; 204 goto out;
205 for (i = 0; i < ebcnt; i++) 205 for (i = 0; i < ebcnt; i++)
diff --git a/drivers/mtd/ubi/eba.c b/drivers/mtd/ubi/eba.c
index edb1c8362faa..b98481b69314 100644
--- a/drivers/mtd/ubi/eba.c
+++ b/drivers/mtd/ubi/eba.c
@@ -1536,11 +1536,11 @@ int self_check_eba(struct ubi_device *ubi, struct ubi_attach_info *ai_fastmap,
1536 1536
1537 num_volumes = ubi->vtbl_slots + UBI_INT_VOL_COUNT; 1537 num_volumes = ubi->vtbl_slots + UBI_INT_VOL_COUNT;
1538 1538
1539 scan_eba = kmalloc(sizeof(*scan_eba) * num_volumes, GFP_KERNEL); 1539 scan_eba = kmalloc_array(num_volumes, sizeof(*scan_eba), GFP_KERNEL);
1540 if (!scan_eba) 1540 if (!scan_eba)
1541 return -ENOMEM; 1541 return -ENOMEM;
1542 1542
1543 fm_eba = kmalloc(sizeof(*fm_eba) * num_volumes, GFP_KERNEL); 1543 fm_eba = kmalloc_array(num_volumes, sizeof(*fm_eba), GFP_KERNEL);
1544 if (!fm_eba) { 1544 if (!fm_eba) {
1545 kfree(scan_eba); 1545 kfree(scan_eba);
1546 return -ENOMEM; 1546 return -ENOMEM;
@@ -1551,15 +1551,17 @@ int self_check_eba(struct ubi_device *ubi, struct ubi_attach_info *ai_fastmap,
1551 if (!vol) 1551 if (!vol)
1552 continue; 1552 continue;
1553 1553
1554 scan_eba[i] = kmalloc(vol->reserved_pebs * sizeof(**scan_eba), 1554 scan_eba[i] = kmalloc_array(vol->reserved_pebs,
1555 GFP_KERNEL); 1555 sizeof(**scan_eba),
1556 GFP_KERNEL);
1556 if (!scan_eba[i]) { 1557 if (!scan_eba[i]) {
1557 ret = -ENOMEM; 1558 ret = -ENOMEM;
1558 goto out_free; 1559 goto out_free;
1559 } 1560 }
1560 1561
1561 fm_eba[i] = kmalloc(vol->reserved_pebs * sizeof(**fm_eba), 1562 fm_eba[i] = kmalloc_array(vol->reserved_pebs,
1562 GFP_KERNEL); 1563 sizeof(**fm_eba),
1564 GFP_KERNEL);
1563 if (!fm_eba[i]) { 1565 if (!fm_eba[i]) {
1564 ret = -ENOMEM; 1566 ret = -ENOMEM;
1565 goto out_free; 1567 goto out_free;
diff --git a/drivers/mtd/ubi/wl.c b/drivers/mtd/ubi/wl.c
index f66b3b22f328..6f2ac865ff05 100644
--- a/drivers/mtd/ubi/wl.c
+++ b/drivers/mtd/ubi/wl.c
@@ -1592,7 +1592,7 @@ int ubi_wl_init(struct ubi_device *ubi, struct ubi_attach_info *ai)
1592 sprintf(ubi->bgt_name, UBI_BGT_NAME_PATTERN, ubi->ubi_num); 1592 sprintf(ubi->bgt_name, UBI_BGT_NAME_PATTERN, ubi->ubi_num);
1593 1593
1594 err = -ENOMEM; 1594 err = -ENOMEM;
1595 ubi->lookuptbl = kzalloc(ubi->peb_count * sizeof(void *), GFP_KERNEL); 1595 ubi->lookuptbl = kcalloc(ubi->peb_count, sizeof(void *), GFP_KERNEL);
1596 if (!ubi->lookuptbl) 1596 if (!ubi->lookuptbl)
1597 return err; 1597 return err;
1598 1598
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index bd53a71f6b00..63e3844c5bec 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -2418,7 +2418,7 @@ struct bond_vlan_tag *bond_verify_device_path(struct net_device *start_dev,
2418 struct list_head *iter; 2418 struct list_head *iter;
2419 2419
2420 if (start_dev == end_dev) { 2420 if (start_dev == end_dev) {
2421 tags = kzalloc(sizeof(*tags) * (level + 1), GFP_ATOMIC); 2421 tags = kcalloc(level + 1, sizeof(*tags), GFP_ATOMIC);
2422 if (!tags) 2422 if (!tags)
2423 return ERR_PTR(-ENOMEM); 2423 return ERR_PTR(-ENOMEM);
2424 tags[level].vlan_proto = VLAN_N_VID; 2424 tags[level].vlan_proto = VLAN_N_VID;
diff --git a/drivers/net/can/grcan.c b/drivers/net/can/grcan.c
index 2d3046afa80d..7eec1d9f86a0 100644
--- a/drivers/net/can/grcan.c
+++ b/drivers/net/can/grcan.c
@@ -1057,7 +1057,7 @@ static int grcan_open(struct net_device *dev)
1057 return err; 1057 return err;
1058 } 1058 }
1059 1059
1060 priv->echo_skb = kzalloc(dma->tx.size * sizeof(*priv->echo_skb), 1060 priv->echo_skb = kcalloc(dma->tx.size, sizeof(*priv->echo_skb),
1061 GFP_KERNEL); 1061 GFP_KERNEL);
1062 if (!priv->echo_skb) { 1062 if (!priv->echo_skb) {
1063 err = -ENOMEM; 1063 err = -ENOMEM;
@@ -1066,7 +1066,7 @@ static int grcan_open(struct net_device *dev)
1066 priv->can.echo_skb_max = dma->tx.size; 1066 priv->can.echo_skb_max = dma->tx.size;
1067 priv->can.echo_skb = priv->echo_skb; 1067 priv->can.echo_skb = priv->echo_skb;
1068 1068
1069 priv->txdlc = kzalloc(dma->tx.size * sizeof(*priv->txdlc), GFP_KERNEL); 1069 priv->txdlc = kcalloc(dma->tx.size, sizeof(*priv->txdlc), GFP_KERNEL);
1070 if (!priv->txdlc) { 1070 if (!priv->txdlc) {
1071 err = -ENOMEM; 1071 err = -ENOMEM;
1072 goto exit_free_echo_skb; 1072 goto exit_free_echo_skb;
diff --git a/drivers/net/can/slcan.c b/drivers/net/can/slcan.c
index 89d60d8e467c..aa97dbc797b6 100644
--- a/drivers/net/can/slcan.c
+++ b/drivers/net/can/slcan.c
@@ -703,7 +703,7 @@ static int __init slcan_init(void)
703 pr_info("slcan: serial line CAN interface driver\n"); 703 pr_info("slcan: serial line CAN interface driver\n");
704 pr_info("slcan: %d dynamic interface channels.\n", maxdev); 704 pr_info("slcan: %d dynamic interface channels.\n", maxdev);
705 705
706 slcan_devs = kzalloc(sizeof(struct net_device *)*maxdev, GFP_KERNEL); 706 slcan_devs = kcalloc(maxdev, sizeof(struct net_device *), GFP_KERNEL);
707 if (!slcan_devs) 707 if (!slcan_devs)
708 return -ENOMEM; 708 return -ENOMEM;
709 709
diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_common.c
index 5e010b1592f7..d93c790bfbe8 100644
--- a/drivers/net/dsa/b53/b53_common.c
+++ b/drivers/net/dsa/b53/b53_common.c
@@ -2044,14 +2044,14 @@ static int b53_switch_init(struct b53_device *dev)
2044 } 2044 }
2045 } 2045 }
2046 2046
2047 dev->ports = devm_kzalloc(dev->dev, 2047 dev->ports = devm_kcalloc(dev->dev,
2048 sizeof(struct b53_port) * dev->num_ports, 2048 dev->num_ports, sizeof(struct b53_port),
2049 GFP_KERNEL); 2049 GFP_KERNEL);
2050 if (!dev->ports) 2050 if (!dev->ports)
2051 return -ENOMEM; 2051 return -ENOMEM;
2052 2052
2053 dev->vlans = devm_kzalloc(dev->dev, 2053 dev->vlans = devm_kcalloc(dev->dev,
2054 sizeof(struct b53_vlan) * dev->num_vlans, 2054 dev->num_vlans, sizeof(struct b53_vlan),
2055 GFP_KERNEL); 2055 GFP_KERNEL);
2056 if (!dev->vlans) 2056 if (!dev->vlans)
2057 return -ENOMEM; 2057 return -ENOMEM;
diff --git a/drivers/net/ethernet/amazon/ena/ena_ethtool.c b/drivers/net/ethernet/amazon/ena/ena_ethtool.c
index 060cb18fa659..521607bc4393 100644
--- a/drivers/net/ethernet/amazon/ena/ena_ethtool.c
+++ b/drivers/net/ethernet/amazon/ena/ena_ethtool.c
@@ -838,8 +838,8 @@ static void ena_dump_stats_ex(struct ena_adapter *adapter, u8 *buf)
838 return; 838 return;
839 } 839 }
840 840
841 strings_buf = devm_kzalloc(&adapter->pdev->dev, 841 strings_buf = devm_kcalloc(&adapter->pdev->dev,
842 strings_num * ETH_GSTRING_LEN, 842 ETH_GSTRING_LEN, strings_num,
843 GFP_ATOMIC); 843 GFP_ATOMIC);
844 if (!strings_buf) { 844 if (!strings_buf) {
845 netif_err(adapter, drv, netdev, 845 netif_err(adapter, drv, netdev,
@@ -847,8 +847,8 @@ static void ena_dump_stats_ex(struct ena_adapter *adapter, u8 *buf)
847 return; 847 return;
848 } 848 }
849 849
850 data_buf = devm_kzalloc(&adapter->pdev->dev, 850 data_buf = devm_kcalloc(&adapter->pdev->dev,
851 strings_num * sizeof(u64), 851 strings_num, sizeof(u64),
852 GFP_ATOMIC); 852 GFP_ATOMIC);
853 if (!data_buf) { 853 if (!data_buf) {
854 netif_err(adapter, drv, netdev, 854 netif_err(adapter, drv, netdev,
diff --git a/drivers/net/ethernet/amd/lance.c b/drivers/net/ethernet/amd/lance.c
index 12a6a93d221b..b56d84c7df46 100644
--- a/drivers/net/ethernet/amd/lance.c
+++ b/drivers/net/ethernet/amd/lance.c
@@ -551,13 +551,13 @@ static int __init lance_probe1(struct net_device *dev, int ioaddr, int irq, int
551 if (lance_debug > 6) printk(" (#0x%05lx)", (unsigned long)lp); 551 if (lance_debug > 6) printk(" (#0x%05lx)", (unsigned long)lp);
552 dev->ml_priv = lp; 552 dev->ml_priv = lp;
553 lp->name = chipname; 553 lp->name = chipname;
554 lp->rx_buffs = (unsigned long)kmalloc(PKT_BUF_SZ*RX_RING_SIZE, 554 lp->rx_buffs = (unsigned long)kmalloc_array(RX_RING_SIZE, PKT_BUF_SZ,
555 GFP_DMA | GFP_KERNEL); 555 GFP_DMA | GFP_KERNEL);
556 if (!lp->rx_buffs) 556 if (!lp->rx_buffs)
557 goto out_lp; 557 goto out_lp;
558 if (lance_need_isa_bounce_buffers) { 558 if (lance_need_isa_bounce_buffers) {
559 lp->tx_bounce_buffs = kmalloc(PKT_BUF_SZ*TX_RING_SIZE, 559 lp->tx_bounce_buffs = kmalloc_array(TX_RING_SIZE, PKT_BUF_SZ,
560 GFP_DMA | GFP_KERNEL); 560 GFP_DMA | GFP_KERNEL);
561 if (!lp->tx_bounce_buffs) 561 if (!lp->tx_bounce_buffs)
562 goto out_rx; 562 goto out_rx;
563 } else 563 } else
diff --git a/drivers/net/ethernet/atheros/atl1c/atl1c_ethtool.c b/drivers/net/ethernet/atheros/atl1c/atl1c_ethtool.c
index cfe86a20c899..28e9ae1a193b 100644
--- a/drivers/net/ethernet/atheros/atl1c/atl1c_ethtool.c
+++ b/drivers/net/ethernet/atheros/atl1c/atl1c_ethtool.c
@@ -209,8 +209,8 @@ static int atl1c_get_eeprom(struct net_device *netdev,
209 first_dword = eeprom->offset >> 2; 209 first_dword = eeprom->offset >> 2;
210 last_dword = (eeprom->offset + eeprom->len - 1) >> 2; 210 last_dword = (eeprom->offset + eeprom->len - 1) >> 2;
211 211
212 eeprom_buff = kmalloc(sizeof(u32) * 212 eeprom_buff = kmalloc_array(last_dword - first_dword + 1, sizeof(u32),
213 (last_dword - first_dword + 1), GFP_KERNEL); 213 GFP_KERNEL);
214 if (eeprom_buff == NULL) 214 if (eeprom_buff == NULL)
215 return -ENOMEM; 215 return -ENOMEM;
216 216
diff --git a/drivers/net/ethernet/atheros/atl1e/atl1e_ethtool.c b/drivers/net/ethernet/atheros/atl1e/atl1e_ethtool.c
index cb489e7e8374..282ebdde4769 100644
--- a/drivers/net/ethernet/atheros/atl1e/atl1e_ethtool.c
+++ b/drivers/net/ethernet/atheros/atl1e/atl1e_ethtool.c
@@ -236,8 +236,8 @@ static int atl1e_get_eeprom(struct net_device *netdev,
236 first_dword = eeprom->offset >> 2; 236 first_dword = eeprom->offset >> 2;
237 last_dword = (eeprom->offset + eeprom->len - 1) >> 2; 237 last_dword = (eeprom->offset + eeprom->len - 1) >> 2;
238 238
239 eeprom_buff = kmalloc(sizeof(u32) * 239 eeprom_buff = kmalloc_array(last_dword - first_dword + 1, sizeof(u32),
240 (last_dword - first_dword + 1), GFP_KERNEL); 240 GFP_KERNEL);
241 if (eeprom_buff == NULL) 241 if (eeprom_buff == NULL)
242 return -ENOMEM; 242 return -ENOMEM;
243 243
diff --git a/drivers/net/ethernet/atheros/atlx/atl2.c b/drivers/net/ethernet/atheros/atlx/atl2.c
index db4bcc51023a..bb41becb6609 100644
--- a/drivers/net/ethernet/atheros/atlx/atl2.c
+++ b/drivers/net/ethernet/atheros/atlx/atl2.c
@@ -1941,8 +1941,8 @@ static int atl2_get_eeprom(struct net_device *netdev,
1941 first_dword = eeprom->offset >> 2; 1941 first_dword = eeprom->offset >> 2;
1942 last_dword = (eeprom->offset + eeprom->len - 1) >> 2; 1942 last_dword = (eeprom->offset + eeprom->len - 1) >> 2;
1943 1943
1944 eeprom_buff = kmalloc(sizeof(u32) * (last_dword - first_dword + 1), 1944 eeprom_buff = kmalloc_array(last_dword - first_dword + 1, sizeof(u32),
1945 GFP_KERNEL); 1945 GFP_KERNEL);
1946 if (!eeprom_buff) 1946 if (!eeprom_buff)
1947 return -ENOMEM; 1947 return -ENOMEM;
1948 1948
diff --git a/drivers/net/ethernet/broadcom/bcm63xx_enet.c b/drivers/net/ethernet/broadcom/bcm63xx_enet.c
index 14a59e51db67..897302adc38e 100644
--- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c
+++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c
@@ -2150,7 +2150,7 @@ static int bcm_enetsw_open(struct net_device *dev)
2150 priv->tx_desc_alloc_size = size; 2150 priv->tx_desc_alloc_size = size;
2151 priv->tx_desc_cpu = p; 2151 priv->tx_desc_cpu = p;
2152 2152
2153 priv->tx_skb = kzalloc(sizeof(struct sk_buff *) * priv->tx_ring_size, 2153 priv->tx_skb = kcalloc(priv->tx_ring_size, sizeof(struct sk_buff *),
2154 GFP_KERNEL); 2154 GFP_KERNEL);
2155 if (!priv->tx_skb) { 2155 if (!priv->tx_skb) {
2156 dev_err(kdev, "cannot allocate rx skb queue\n"); 2156 dev_err(kdev, "cannot allocate rx skb queue\n");
@@ -2164,7 +2164,7 @@ static int bcm_enetsw_open(struct net_device *dev)
2164 spin_lock_init(&priv->tx_lock); 2164 spin_lock_init(&priv->tx_lock);
2165 2165
2166 /* init & fill rx ring with skbs */ 2166 /* init & fill rx ring with skbs */
2167 priv->rx_skb = kzalloc(sizeof(struct sk_buff *) * priv->rx_ring_size, 2167 priv->rx_skb = kcalloc(priv->rx_ring_size, sizeof(struct sk_buff *),
2168 GFP_KERNEL); 2168 GFP_KERNEL);
2169 if (!priv->rx_skb) { 2169 if (!priv->rx_skb) {
2170 dev_err(kdev, "cannot allocate rx skb queue\n"); 2170 dev_err(kdev, "cannot allocate rx skb queue\n");
diff --git a/drivers/net/ethernet/broadcom/bnx2.c b/drivers/net/ethernet/broadcom/bnx2.c
index 3853296d78c1..122fdb80a789 100644
--- a/drivers/net/ethernet/broadcom/bnx2.c
+++ b/drivers/net/ethernet/broadcom/bnx2.c
@@ -778,7 +778,7 @@ bnx2_alloc_rx_mem(struct bnx2 *bp)
778 int j; 778 int j;
779 779
780 rxr->rx_buf_ring = 780 rxr->rx_buf_ring =
781 vzalloc(SW_RXBD_RING_SIZE * bp->rx_max_ring); 781 vzalloc(array_size(SW_RXBD_RING_SIZE, bp->rx_max_ring));
782 if (!rxr->rx_buf_ring) 782 if (!rxr->rx_buf_ring)
783 return -ENOMEM; 783 return -ENOMEM;
784 784
@@ -794,8 +794,9 @@ bnx2_alloc_rx_mem(struct bnx2 *bp)
794 } 794 }
795 795
796 if (bp->rx_pg_ring_size) { 796 if (bp->rx_pg_ring_size) {
797 rxr->rx_pg_ring = vzalloc(SW_RXPG_RING_SIZE * 797 rxr->rx_pg_ring =
798 bp->rx_max_pg_ring); 798 vzalloc(array_size(SW_RXPG_RING_SIZE,
799 bp->rx_max_pg_ring));
799 if (!rxr->rx_pg_ring) 800 if (!rxr->rx_pg_ring)
800 return -ENOMEM; 801 return -ENOMEM;
801 802
@@ -2666,7 +2667,7 @@ bnx2_alloc_bad_rbuf(struct bnx2 *bp)
2666 u32 good_mbuf_cnt; 2667 u32 good_mbuf_cnt;
2667 u32 val; 2668 u32 val;
2668 2669
2669 good_mbuf = kmalloc(512 * sizeof(u16), GFP_KERNEL); 2670 good_mbuf = kmalloc_array(512, sizeof(u16), GFP_KERNEL);
2670 if (!good_mbuf) 2671 if (!good_mbuf)
2671 return -ENOMEM; 2672 return -ENOMEM;
2672 2673
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c
index ffa7959f6b31..dc77bfded865 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c
@@ -571,7 +571,7 @@ int bnx2x_vf_mcast(struct bnx2x *bp, struct bnx2x_virtf *vf,
571 else 571 else
572 set_bit(RAMROD_COMP_WAIT, &mcast.ramrod_flags); 572 set_bit(RAMROD_COMP_WAIT, &mcast.ramrod_flags);
573 if (mc_num) { 573 if (mc_num) {
574 mc = kzalloc(mc_num * sizeof(struct bnx2x_mcast_list_elem), 574 mc = kcalloc(mc_num, sizeof(struct bnx2x_mcast_list_elem),
575 GFP_KERNEL); 575 GFP_KERNEL);
576 if (!mc) { 576 if (!mc) {
577 BNX2X_ERR("Cannot Configure multicasts due to lack of memory\n"); 577 BNX2X_ERR("Cannot Configure multicasts due to lack of memory\n");
@@ -1253,8 +1253,9 @@ int bnx2x_iov_init_one(struct bnx2x *bp, int int_mode_param,
1253 num_vfs_param, iov->nr_virtfn); 1253 num_vfs_param, iov->nr_virtfn);
1254 1254
1255 /* allocate the vf array */ 1255 /* allocate the vf array */
1256 bp->vfdb->vfs = kzalloc(sizeof(struct bnx2x_virtf) * 1256 bp->vfdb->vfs = kcalloc(BNX2X_NR_VIRTFN(bp),
1257 BNX2X_NR_VIRTFN(bp), GFP_KERNEL); 1257 sizeof(struct bnx2x_virtf),
1258 GFP_KERNEL);
1258 if (!bp->vfdb->vfs) { 1259 if (!bp->vfdb->vfs) {
1259 BNX2X_ERR("failed to allocate vf array\n"); 1260 BNX2X_ERR("failed to allocate vf array\n");
1260 err = -ENOMEM; 1261 err = -ENOMEM;
@@ -1278,9 +1279,9 @@ int bnx2x_iov_init_one(struct bnx2x *bp, int int_mode_param,
1278 } 1279 }
1279 1280
1280 /* allocate the queue arrays for all VFs */ 1281 /* allocate the queue arrays for all VFs */
1281 bp->vfdb->vfqs = kzalloc( 1282 bp->vfdb->vfqs = kcalloc(BNX2X_MAX_NUM_VF_QUEUES,
1282 BNX2X_MAX_NUM_VF_QUEUES * sizeof(struct bnx2x_vf_queue), 1283 sizeof(struct bnx2x_vf_queue),
1283 GFP_KERNEL); 1284 GFP_KERNEL);
1284 1285
1285 if (!bp->vfdb->vfqs) { 1286 if (!bp->vfdb->vfqs) {
1286 BNX2X_ERR("failed to allocate vf queue array\n"); 1287 BNX2X_ERR("failed to allocate vf queue array\n");
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_vfr.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_vfr.c
index 38f635cf8408..05d405905906 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt_vfr.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_vfr.c
@@ -444,8 +444,8 @@ static int bnxt_vf_reps_create(struct bnxt *bp)
444 return -ENOMEM; 444 return -ENOMEM;
445 445
446 /* storage for cfa_code to vf-idx mapping */ 446 /* storage for cfa_code to vf-idx mapping */
447 cfa_code_map = kmalloc(sizeof(*bp->cfa_code_map) * MAX_CFA_CODE, 447 cfa_code_map = kmalloc_array(MAX_CFA_CODE, sizeof(*bp->cfa_code_map),
448 GFP_KERNEL); 448 GFP_KERNEL);
449 if (!cfa_code_map) { 449 if (!cfa_code_map) {
450 rc = -ENOMEM; 450 rc = -ENOMEM;
451 goto err; 451 goto err;
diff --git a/drivers/net/ethernet/broadcom/cnic.c b/drivers/net/ethernet/broadcom/cnic.c
index 8bc126a156e8..30273a7717e2 100644
--- a/drivers/net/ethernet/broadcom/cnic.c
+++ b/drivers/net/ethernet/broadcom/cnic.c
@@ -660,7 +660,7 @@ static int cnic_init_id_tbl(struct cnic_id_tbl *id_tbl, u32 size, u32 start_id,
660 id_tbl->max = size; 660 id_tbl->max = size;
661 id_tbl->next = next; 661 id_tbl->next = next;
662 spin_lock_init(&id_tbl->lock); 662 spin_lock_init(&id_tbl->lock);
663 id_tbl->table = kzalloc(DIV_ROUND_UP(size, 32) * 4, GFP_KERNEL); 663 id_tbl->table = kcalloc(DIV_ROUND_UP(size, 32), 4, GFP_KERNEL);
664 if (!id_tbl->table) 664 if (!id_tbl->table)
665 return -ENOMEM; 665 return -ENOMEM;
666 666
@@ -1255,13 +1255,13 @@ static int cnic_alloc_bnx2x_resc(struct cnic_dev *dev)
1255 cp->fcoe_init_cid = 0x10; 1255 cp->fcoe_init_cid = 0x10;
1256 } 1256 }
1257 1257
1258 cp->iscsi_tbl = kzalloc(sizeof(struct cnic_iscsi) * MAX_ISCSI_TBL_SZ, 1258 cp->iscsi_tbl = kcalloc(MAX_ISCSI_TBL_SZ, sizeof(struct cnic_iscsi),
1259 GFP_KERNEL); 1259 GFP_KERNEL);
1260 if (!cp->iscsi_tbl) 1260 if (!cp->iscsi_tbl)
1261 goto error; 1261 goto error;
1262 1262
1263 cp->ctx_tbl = kzalloc(sizeof(struct cnic_context) * 1263 cp->ctx_tbl = kcalloc(cp->max_cid_space, sizeof(struct cnic_context),
1264 cp->max_cid_space, GFP_KERNEL); 1264 GFP_KERNEL);
1265 if (!cp->ctx_tbl) 1265 if (!cp->ctx_tbl)
1266 goto error; 1266 goto error;
1267 1267
@@ -4100,7 +4100,7 @@ static int cnic_cm_alloc_mem(struct cnic_dev *dev)
4100 struct cnic_local *cp = dev->cnic_priv; 4100 struct cnic_local *cp = dev->cnic_priv;
4101 u32 port_id; 4101 u32 port_id;
4102 4102
4103 cp->csk_tbl = kzalloc(sizeof(struct cnic_sock) * MAX_CM_SK_TBL_SZ, 4103 cp->csk_tbl = kcalloc(MAX_CM_SK_TBL_SZ, sizeof(struct cnic_sock),
4104 GFP_KERNEL); 4104 GFP_KERNEL);
4105 if (!cp->csk_tbl) 4105 if (!cp->csk_tbl)
4106 return -ENOMEM; 4106 return -ENOMEM;
diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c
index 9f59b1270a7c..3be87efdc93d 100644
--- a/drivers/net/ethernet/broadcom/tg3.c
+++ b/drivers/net/ethernet/broadcom/tg3.c
@@ -8631,8 +8631,9 @@ static int tg3_mem_tx_acquire(struct tg3 *tp)
8631 tnapi++; 8631 tnapi++;
8632 8632
8633 for (i = 0; i < tp->txq_cnt; i++, tnapi++) { 8633 for (i = 0; i < tp->txq_cnt; i++, tnapi++) {
8634 tnapi->tx_buffers = kzalloc(sizeof(struct tg3_tx_ring_info) * 8634 tnapi->tx_buffers = kcalloc(TG3_TX_RING_SIZE,
8635 TG3_TX_RING_SIZE, GFP_KERNEL); 8635 sizeof(struct tg3_tx_ring_info),
8636 GFP_KERNEL);
8636 if (!tnapi->tx_buffers) 8637 if (!tnapi->tx_buffers)
8637 goto err_out; 8638 goto err_out;
8638 8639
diff --git a/drivers/net/ethernet/brocade/bna/bnad.c b/drivers/net/ethernet/brocade/bna/bnad.c
index 69cc3e0119d6..ea5f32ea308a 100644
--- a/drivers/net/ethernet/brocade/bna/bnad.c
+++ b/drivers/net/ethernet/brocade/bna/bnad.c
@@ -3141,7 +3141,7 @@ bnad_set_rx_ucast_fltr(struct bnad *bnad)
3141 if (uc_count > bna_attr(&bnad->bna)->num_ucmac) 3141 if (uc_count > bna_attr(&bnad->bna)->num_ucmac)
3142 goto mode_default; 3142 goto mode_default;
3143 3143
3144 mac_list = kzalloc(uc_count * ETH_ALEN, GFP_ATOMIC); 3144 mac_list = kcalloc(ETH_ALEN, uc_count, GFP_ATOMIC);
3145 if (mac_list == NULL) 3145 if (mac_list == NULL)
3146 goto mode_default; 3146 goto mode_default;
3147 3147
@@ -3182,7 +3182,7 @@ bnad_set_rx_mcast_fltr(struct bnad *bnad)
3182 if (mc_count > bna_attr(&bnad->bna)->num_mcmac) 3182 if (mc_count > bna_attr(&bnad->bna)->num_mcmac)
3183 goto mode_allmulti; 3183 goto mode_allmulti;
3184 3184
3185 mac_list = kzalloc((mc_count + 1) * ETH_ALEN, GFP_ATOMIC); 3185 mac_list = kcalloc(mc_count + 1, ETH_ALEN, GFP_ATOMIC);
3186 3186
3187 if (mac_list == NULL) 3187 if (mac_list == NULL)
3188 goto mode_allmulti; 3188 goto mode_allmulti;
diff --git a/drivers/net/ethernet/calxeda/xgmac.c b/drivers/net/ethernet/calxeda/xgmac.c
index 2bd7c638b178..2c63afff1382 100644
--- a/drivers/net/ethernet/calxeda/xgmac.c
+++ b/drivers/net/ethernet/calxeda/xgmac.c
@@ -739,7 +739,7 @@ static int xgmac_dma_desc_rings_init(struct net_device *dev)
739 739
740 netdev_dbg(priv->dev, "mtu [%d] bfsize [%d]\n", dev->mtu, bfsize); 740 netdev_dbg(priv->dev, "mtu [%d] bfsize [%d]\n", dev->mtu, bfsize);
741 741
742 priv->rx_skbuff = kzalloc(sizeof(struct sk_buff *) * DMA_RX_RING_SZ, 742 priv->rx_skbuff = kcalloc(DMA_RX_RING_SZ, sizeof(struct sk_buff *),
743 GFP_KERNEL); 743 GFP_KERNEL);
744 if (!priv->rx_skbuff) 744 if (!priv->rx_skbuff)
745 return -ENOMEM; 745 return -ENOMEM;
@@ -752,7 +752,7 @@ static int xgmac_dma_desc_rings_init(struct net_device *dev)
752 if (!priv->dma_rx) 752 if (!priv->dma_rx)
753 goto err_dma_rx; 753 goto err_dma_rx;
754 754
755 priv->tx_skbuff = kzalloc(sizeof(struct sk_buff *) * DMA_TX_RING_SZ, 755 priv->tx_skbuff = kcalloc(DMA_TX_RING_SZ, sizeof(struct sk_buff *),
756 GFP_KERNEL); 756 GFP_KERNEL);
757 if (!priv->tx_skbuff) 757 if (!priv->tx_skbuff)
758 goto err_tx_skb; 758 goto err_tx_skb;
diff --git a/drivers/net/ethernet/cavium/liquidio/octeon_droq.c b/drivers/net/ethernet/cavium/liquidio/octeon_droq.c
index f044718cea52..a71dbb7ab6af 100644
--- a/drivers/net/ethernet/cavium/liquidio/octeon_droq.c
+++ b/drivers/net/ethernet/cavium/liquidio/octeon_droq.c
@@ -281,13 +281,12 @@ int octeon_init_droq(struct octeon_device *oct,
281 droq->max_count); 281 droq->max_count);
282 282
283 droq->recv_buf_list = (struct octeon_recv_buffer *) 283 droq->recv_buf_list = (struct octeon_recv_buffer *)
284 vzalloc_node(droq->max_count * 284 vzalloc_node(array_size(droq->max_count, OCT_DROQ_RECVBUF_SIZE),
285 OCT_DROQ_RECVBUF_SIZE, 285 numa_node);
286 numa_node);
287 if (!droq->recv_buf_list) 286 if (!droq->recv_buf_list)
288 droq->recv_buf_list = (struct octeon_recv_buffer *) 287 droq->recv_buf_list = (struct octeon_recv_buffer *)
289 vzalloc(droq->max_count * 288 vzalloc(array_size(droq->max_count,
290 OCT_DROQ_RECVBUF_SIZE); 289 OCT_DROQ_RECVBUF_SIZE));
291 if (!droq->recv_buf_list) { 290 if (!droq->recv_buf_list) {
292 dev_err(&oct->pci_dev->dev, "Output queue recv buf list alloc failed\n"); 291 dev_err(&oct->pci_dev->dev, "Output queue recv buf list alloc failed\n");
293 goto init_droq_fail; 292 goto init_droq_fail;
diff --git a/drivers/net/ethernet/cavium/liquidio/request_manager.c b/drivers/net/ethernet/cavium/liquidio/request_manager.c
index b1270355b0b1..1f2e75da28f8 100644
--- a/drivers/net/ethernet/cavium/liquidio/request_manager.c
+++ b/drivers/net/ethernet/cavium/liquidio/request_manager.c
@@ -98,8 +98,9 @@ int octeon_init_instr_queue(struct octeon_device *oct,
98 iq->request_list = vmalloc_node((sizeof(*iq->request_list) * num_descs), 98 iq->request_list = vmalloc_node((sizeof(*iq->request_list) * num_descs),
99 numa_node); 99 numa_node);
100 if (!iq->request_list) 100 if (!iq->request_list)
101 iq->request_list = vmalloc(sizeof(*iq->request_list) * 101 iq->request_list =
102 num_descs); 102 vmalloc(array_size(num_descs,
103 sizeof(*iq->request_list)));
103 if (!iq->request_list) { 104 if (!iq->request_list) {
104 lio_dma_free(oct, q_size, iq->base_addr, iq->base_addr_dma); 105 lio_dma_free(oct, q_size, iq->base_addr, iq->base_addr_dma);
105 dev_err(&oct->pci_dev->dev, "Alloc failed for IQ[%d] nr free list\n", 106 dev_err(&oct->pci_dev->dev, "Alloc failed for IQ[%d] nr free list\n",
diff --git a/drivers/net/ethernet/cavium/thunder/nicvf_queues.c b/drivers/net/ethernet/cavium/thunder/nicvf_queues.c
index d42704d07484..187a249ff2d1 100644
--- a/drivers/net/ethernet/cavium/thunder/nicvf_queues.c
+++ b/drivers/net/ethernet/cavium/thunder/nicvf_queues.c
@@ -292,8 +292,8 @@ static int nicvf_init_rbdr(struct nicvf *nic, struct rbdr *rbdr,
292 rbdr->is_xdp = true; 292 rbdr->is_xdp = true;
293 } 293 }
294 rbdr->pgcnt = roundup_pow_of_two(rbdr->pgcnt); 294 rbdr->pgcnt = roundup_pow_of_two(rbdr->pgcnt);
295 rbdr->pgcache = kzalloc(sizeof(*rbdr->pgcache) * 295 rbdr->pgcache = kcalloc(rbdr->pgcnt, sizeof(*rbdr->pgcache),
296 rbdr->pgcnt, GFP_KERNEL); 296 GFP_KERNEL);
297 if (!rbdr->pgcache) 297 if (!rbdr->pgcache)
298 return -ENOMEM; 298 return -ENOMEM;
299 rbdr->pgidx = 0; 299 rbdr->pgidx = 0;
diff --git a/drivers/net/ethernet/chelsio/cxgb4/clip_tbl.c b/drivers/net/ethernet/chelsio/cxgb4/clip_tbl.c
index 290039026ece..5701272aa7f7 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/clip_tbl.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/clip_tbl.c
@@ -304,7 +304,7 @@ struct clip_tbl *t4_init_clip_tbl(unsigned int clipt_start,
304 for (i = 0; i < ctbl->clipt_size; ++i) 304 for (i = 0; i < ctbl->clipt_size; ++i)
305 INIT_LIST_HEAD(&ctbl->hash_list[i]); 305 INIT_LIST_HEAD(&ctbl->hash_list[i]);
306 306
307 cl_list = kvzalloc(clipt_size*sizeof(struct clip_entry), GFP_KERNEL); 307 cl_list = kvcalloc(clipt_size, sizeof(struct clip_entry), GFP_KERNEL);
308 if (!cl_list) { 308 if (!cl_list) {
309 kvfree(ctbl); 309 kvfree(ctbl);
310 return NULL; 310 return NULL;
diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c
index 251d5bdc972f..c301aaf79d64 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c
@@ -873,7 +873,7 @@ static int cctrl_tbl_show(struct seq_file *seq, void *v)
873 u16 (*incr)[NCCTRL_WIN]; 873 u16 (*incr)[NCCTRL_WIN];
874 struct adapter *adap = seq->private; 874 struct adapter *adap = seq->private;
875 875
876 incr = kmalloc(sizeof(*incr) * NMTUS, GFP_KERNEL); 876 incr = kmalloc_array(NMTUS, sizeof(*incr), GFP_KERNEL);
877 if (!incr) 877 if (!incr)
878 return -ENOMEM; 878 return -ENOMEM;
879 879
diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
index 35cb3ae4f7b6..dd04a2f89ce6 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
@@ -713,7 +713,7 @@ int cxgb4_write_rss(const struct port_info *pi, const u16 *queues)
713 const struct sge_eth_rxq *rxq; 713 const struct sge_eth_rxq *rxq;
714 714
715 rxq = &adapter->sge.ethrxq[pi->first_qset]; 715 rxq = &adapter->sge.ethrxq[pi->first_qset];
716 rss = kmalloc(pi->rss_size * sizeof(u16), GFP_KERNEL); 716 rss = kmalloc_array(pi->rss_size, sizeof(u16), GFP_KERNEL);
717 if (!rss) 717 if (!rss)
718 return -ENOMEM; 718 return -ENOMEM;
719 719
@@ -4972,8 +4972,8 @@ static int enable_msix(struct adapter *adap)
4972 max_ingq += (MAX_OFLD_QSETS * adap->num_uld); 4972 max_ingq += (MAX_OFLD_QSETS * adap->num_uld);
4973 if (is_offload(adap)) 4973 if (is_offload(adap))
4974 max_ingq += (MAX_OFLD_QSETS * adap->num_ofld_uld); 4974 max_ingq += (MAX_OFLD_QSETS * adap->num_ofld_uld);
4975 entries = kmalloc(sizeof(*entries) * (max_ingq + 1), 4975 entries = kmalloc_array(max_ingq + 1, sizeof(*entries),
4976 GFP_KERNEL); 4976 GFP_KERNEL);
4977 if (!entries) 4977 if (!entries)
4978 return -ENOMEM; 4978 return -ENOMEM;
4979 4979
@@ -5646,8 +5646,8 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
5646 adapter->params.offload = 0; 5646 adapter->params.offload = 0;
5647 } 5647 }
5648 5648
5649 adapter->mps_encap = kvzalloc(sizeof(struct mps_encap_entry) * 5649 adapter->mps_encap = kvcalloc(adapter->params.arch.mps_tcam_size,
5650 adapter->params.arch.mps_tcam_size, 5650 sizeof(struct mps_encap_entry),
5651 GFP_KERNEL); 5651 GFP_KERNEL);
5652 if (!adapter->mps_encap) 5652 if (!adapter->mps_encap)
5653 dev_warn(&pdev->dev, "could not allocate MPS Encap entries, continuing\n"); 5653 dev_warn(&pdev->dev, "could not allocate MPS Encap entries, continuing\n");
diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c
index ab174bcfbfb0..18eb2aedd4cb 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c
@@ -457,7 +457,8 @@ struct cxgb4_tc_u32_table *cxgb4_init_tc_u32(struct adapter *adap)
457 unsigned int bmap_size; 457 unsigned int bmap_size;
458 458
459 bmap_size = BITS_TO_LONGS(max_tids); 459 bmap_size = BITS_TO_LONGS(max_tids);
460 link->tid_map = kvzalloc(sizeof(unsigned long) * bmap_size, GFP_KERNEL); 460 link->tid_map = kvcalloc(bmap_size, sizeof(unsigned long),
461 GFP_KERNEL);
461 if (!link->tid_map) 462 if (!link->tid_map)
462 goto out_no_mem; 463 goto out_no_mem;
463 bitmap_zero(link->tid_map, max_tids); 464 bitmap_zero(link->tid_map, max_tids);
diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.c
index a95cde0fadf7..4bc211093c98 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.c
@@ -561,13 +561,13 @@ int t4_uld_mem_alloc(struct adapter *adap)
561 if (!adap->uld) 561 if (!adap->uld)
562 return -ENOMEM; 562 return -ENOMEM;
563 563
564 s->uld_rxq_info = kzalloc(CXGB4_ULD_MAX * 564 s->uld_rxq_info = kcalloc(CXGB4_ULD_MAX,
565 sizeof(struct sge_uld_rxq_info *), 565 sizeof(struct sge_uld_rxq_info *),
566 GFP_KERNEL); 566 GFP_KERNEL);
567 if (!s->uld_rxq_info) 567 if (!s->uld_rxq_info)
568 goto err_uld; 568 goto err_uld;
569 569
570 s->uld_txq_info = kzalloc(CXGB4_TX_MAX * 570 s->uld_txq_info = kcalloc(CXGB4_TX_MAX,
571 sizeof(struct sge_uld_txq_info *), 571 sizeof(struct sge_uld_txq_info *),
572 GFP_KERNEL); 572 GFP_KERNEL);
573 if (!s->uld_txq_info) 573 if (!s->uld_txq_info)
diff --git a/drivers/net/ethernet/chelsio/cxgb4/sge.c b/drivers/net/ethernet/chelsio/cxgb4/sge.c
index 7a271feec5e7..395e2a0e8d7f 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/sge.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/sge.c
@@ -699,7 +699,7 @@ static void *alloc_ring(struct device *dev, size_t nelem, size_t elem_size,
699 if (!p) 699 if (!p)
700 return NULL; 700 return NULL;
701 if (sw_size) { 701 if (sw_size) {
702 s = kzalloc_node(nelem * sw_size, GFP_KERNEL, node); 702 s = kcalloc_node(sw_size, nelem, GFP_KERNEL, node);
703 703
704 if (!s) { 704 if (!s) {
705 dma_free_coherent(dev, len, p, *phys); 705 dma_free_coherent(dev, len, p, *phys);
diff --git a/drivers/net/ethernet/cortina/gemini.c b/drivers/net/ethernet/cortina/gemini.c
index ff9eb45f67f8..6d7404f66f84 100644
--- a/drivers/net/ethernet/cortina/gemini.c
+++ b/drivers/net/ethernet/cortina/gemini.c
@@ -910,8 +910,8 @@ static int geth_setup_freeq(struct gemini_ethernet *geth)
910 } 910 }
911 911
912 /* Allocate a mapping to page look-up index */ 912 /* Allocate a mapping to page look-up index */
913 geth->freeq_pages = kzalloc(pages * sizeof(*geth->freeq_pages), 913 geth->freeq_pages = kcalloc(pages, sizeof(*geth->freeq_pages),
914 GFP_KERNEL); 914 GFP_KERNEL);
915 if (!geth->freeq_pages) 915 if (!geth->freeq_pages)
916 goto err_freeq; 916 goto err_freeq;
917 geth->num_freeq_pages = pages; 917 geth->num_freeq_pages = pages;
diff --git a/drivers/net/ethernet/ethoc.c b/drivers/net/ethernet/ethoc.c
index 00a57273b753..60da0499ad66 100644
--- a/drivers/net/ethernet/ethoc.c
+++ b/drivers/net/ethernet/ethoc.c
@@ -1141,7 +1141,8 @@ static int ethoc_probe(struct platform_device *pdev)
1141 dev_dbg(&pdev->dev, "ethoc: num_tx: %d num_rx: %d\n", 1141 dev_dbg(&pdev->dev, "ethoc: num_tx: %d num_rx: %d\n",
1142 priv->num_tx, priv->num_rx); 1142 priv->num_tx, priv->num_rx);
1143 1143
1144 priv->vma = devm_kzalloc(&pdev->dev, num_bd*sizeof(void *), GFP_KERNEL); 1144 priv->vma = devm_kcalloc(&pdev->dev, num_bd, sizeof(void *),
1145 GFP_KERNEL);
1145 if (!priv->vma) { 1146 if (!priv->vma) {
1146 ret = -ENOMEM; 1147 ret = -ENOMEM;
1147 goto free; 1148 goto free;
diff --git a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
index fd43f98ddbe7..5f4e1ffa7b95 100644
--- a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
+++ b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
@@ -664,7 +664,7 @@ static struct dpaa_fq *dpaa_fq_alloc(struct device *dev,
664 struct dpaa_fq *dpaa_fq; 664 struct dpaa_fq *dpaa_fq;
665 int i; 665 int i;
666 666
667 dpaa_fq = devm_kzalloc(dev, sizeof(*dpaa_fq) * count, 667 dpaa_fq = devm_kcalloc(dev, count, sizeof(*dpaa_fq),
668 GFP_KERNEL); 668 GFP_KERNEL);
669 if (!dpaa_fq) 669 if (!dpaa_fq)
670 return NULL; 670 return NULL;
diff --git a/drivers/net/ethernet/freescale/ucc_geth.c b/drivers/net/ethernet/freescale/ucc_geth.c
index a96b838cffce..42fca3208c0b 100644
--- a/drivers/net/ethernet/freescale/ucc_geth.c
+++ b/drivers/net/ethernet/freescale/ucc_geth.c
@@ -2253,9 +2253,9 @@ static int ucc_geth_alloc_tx(struct ucc_geth_private *ugeth)
2253 /* Init Tx bds */ 2253 /* Init Tx bds */
2254 for (j = 0; j < ug_info->numQueuesTx; j++) { 2254 for (j = 0; j < ug_info->numQueuesTx; j++) {
2255 /* Setup the skbuff rings */ 2255 /* Setup the skbuff rings */
2256 ugeth->tx_skbuff[j] = kmalloc(sizeof(struct sk_buff *) * 2256 ugeth->tx_skbuff[j] =
2257 ugeth->ug_info->bdRingLenTx[j], 2257 kmalloc_array(ugeth->ug_info->bdRingLenTx[j],
2258 GFP_KERNEL); 2258 sizeof(struct sk_buff *), GFP_KERNEL);
2259 2259
2260 if (ugeth->tx_skbuff[j] == NULL) { 2260 if (ugeth->tx_skbuff[j] == NULL) {
2261 if (netif_msg_ifup(ugeth)) 2261 if (netif_msg_ifup(ugeth))
@@ -2326,9 +2326,9 @@ static int ucc_geth_alloc_rx(struct ucc_geth_private *ugeth)
2326 /* Init Rx bds */ 2326 /* Init Rx bds */
2327 for (j = 0; j < ug_info->numQueuesRx; j++) { 2327 for (j = 0; j < ug_info->numQueuesRx; j++) {
2328 /* Setup the skbuff rings */ 2328 /* Setup the skbuff rings */
2329 ugeth->rx_skbuff[j] = kmalloc(sizeof(struct sk_buff *) * 2329 ugeth->rx_skbuff[j] =
2330 ugeth->ug_info->bdRingLenRx[j], 2330 kmalloc_array(ugeth->ug_info->bdRingLenRx[j],
2331 GFP_KERNEL); 2331 sizeof(struct sk_buff *), GFP_KERNEL);
2332 2332
2333 if (ugeth->rx_skbuff[j] == NULL) { 2333 if (ugeth->rx_skbuff[j] == NULL) {
2334 if (netif_msg_ifup(ugeth)) 2334 if (netif_msg_ifup(ugeth))
diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
index 85e1d14514fc..0ce07f6eb1e6 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
@@ -1406,8 +1406,8 @@ static int hns_dsaf_init(struct dsaf_device *dsaf_dev)
1406 return ret; 1406 return ret;
1407 1407
1408 /* malloc mem for tcam mac key(vlan+mac) */ 1408 /* malloc mem for tcam mac key(vlan+mac) */
1409 priv->soft_mac_tbl = vzalloc(sizeof(*priv->soft_mac_tbl) 1409 priv->soft_mac_tbl = vzalloc(array_size(DSAF_TCAM_SUM,
1410 * DSAF_TCAM_SUM); 1410 sizeof(*priv->soft_mac_tbl)));
1411 if (!priv->soft_mac_tbl) { 1411 if (!priv->soft_mac_tbl) {
1412 ret = -ENOMEM; 1412 ret = -ENOMEM;
1413 goto remove_hw; 1413 goto remove_hw;
diff --git a/drivers/net/ethernet/hisilicon/hns/hns_enet.c b/drivers/net/ethernet/hisilicon/hns/hns_enet.c
index 1ccb6443d2ed..ef9ef703d13a 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_enet.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_enet.c
@@ -2197,7 +2197,8 @@ static int hns_nic_init_ring_data(struct hns_nic_priv *priv)
2197 return -EINVAL; 2197 return -EINVAL;
2198 } 2198 }
2199 2199
2200 priv->ring_data = kzalloc(h->q_num * sizeof(*priv->ring_data) * 2, 2200 priv->ring_data = kzalloc(array3_size(h->q_num,
2201 sizeof(*priv->ring_data), 2),
2201 GFP_KERNEL); 2202 GFP_KERNEL);
2202 if (!priv->ring_data) 2203 if (!priv->ring_data)
2203 return -ENOMEM; 2204 return -ENOMEM;
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
index f2b31d278bc9..25a73bb2e642 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
@@ -2846,8 +2846,10 @@ static int hns3_get_ring_config(struct hns3_nic_priv *priv)
2846 struct pci_dev *pdev = h->pdev; 2846 struct pci_dev *pdev = h->pdev;
2847 int i, ret; 2847 int i, ret;
2848 2848
2849 priv->ring_data = devm_kzalloc(&pdev->dev, h->kinfo.num_tqps * 2849 priv->ring_data = devm_kzalloc(&pdev->dev,
2850 sizeof(*priv->ring_data) * 2, 2850 array3_size(h->kinfo.num_tqps,
2851 sizeof(*priv->ring_data),
2852 2),
2851 GFP_KERNEL); 2853 GFP_KERNEL);
2852 if (!priv->ring_data) 2854 if (!priv->ring_data)
2853 return -ENOMEM; 2855 return -ENOMEM;
diff --git a/drivers/net/ethernet/huawei/hinic/hinic_hw_cmdq.c b/drivers/net/ethernet/huawei/hinic/hinic_hw_cmdq.c
index 28a81ac97af5..4d09ea786b35 100644
--- a/drivers/net/ethernet/huawei/hinic/hinic_hw_cmdq.c
+++ b/drivers/net/ethernet/huawei/hinic/hinic_hw_cmdq.c
@@ -753,11 +753,12 @@ static int init_cmdq(struct hinic_cmdq *cmdq, struct hinic_wq *wq,
753 753
754 spin_lock_init(&cmdq->cmdq_lock); 754 spin_lock_init(&cmdq->cmdq_lock);
755 755
756 cmdq->done = vzalloc(wq->q_depth * sizeof(*cmdq->done)); 756 cmdq->done = vzalloc(array_size(sizeof(*cmdq->done), wq->q_depth));
757 if (!cmdq->done) 757 if (!cmdq->done)
758 return -ENOMEM; 758 return -ENOMEM;
759 759
760 cmdq->errcode = vzalloc(wq->q_depth * sizeof(*cmdq->errcode)); 760 cmdq->errcode = vzalloc(array_size(sizeof(*cmdq->errcode),
761 wq->q_depth));
761 if (!cmdq->errcode) { 762 if (!cmdq->errcode) {
762 err = -ENOMEM; 763 err = -ENOMEM;
763 goto err_errcode; 764 goto err_errcode;
diff --git a/drivers/net/ethernet/ibm/ibmveth.c b/drivers/net/ethernet/ibm/ibmveth.c
index c1b51edaaf62..525d8b89187b 100644
--- a/drivers/net/ethernet/ibm/ibmveth.c
+++ b/drivers/net/ethernet/ibm/ibmveth.c
@@ -171,7 +171,7 @@ static int ibmveth_alloc_buffer_pool(struct ibmveth_buff_pool *pool)
171{ 171{
172 int i; 172 int i;
173 173
174 pool->free_map = kmalloc(sizeof(u16) * pool->size, GFP_KERNEL); 174 pool->free_map = kmalloc_array(pool->size, sizeof(u16), GFP_KERNEL);
175 175
176 if (!pool->free_map) 176 if (!pool->free_map)
177 return -1; 177 return -1;
diff --git a/drivers/net/ethernet/intel/e1000/e1000_ethtool.c b/drivers/net/ethernet/intel/e1000/e1000_ethtool.c
index 5d365a986bb0..bdb3f8e65ed4 100644
--- a/drivers/net/ethernet/intel/e1000/e1000_ethtool.c
+++ b/drivers/net/ethernet/intel/e1000/e1000_ethtool.c
@@ -435,8 +435,8 @@ static int e1000_get_eeprom(struct net_device *netdev,
435 first_word = eeprom->offset >> 1; 435 first_word = eeprom->offset >> 1;
436 last_word = (eeprom->offset + eeprom->len - 1) >> 1; 436 last_word = (eeprom->offset + eeprom->len - 1) >> 1;
437 437
438 eeprom_buff = kmalloc(sizeof(u16) * 438 eeprom_buff = kmalloc_array(last_word - first_word + 1, sizeof(u16),
439 (last_word - first_word + 1), GFP_KERNEL); 439 GFP_KERNEL);
440 if (!eeprom_buff) 440 if (!eeprom_buff)
441 return -ENOMEM; 441 return -ENOMEM;
442 442
diff --git a/drivers/net/ethernet/intel/e1000e/ethtool.c b/drivers/net/ethernet/intel/e1000e/ethtool.c
index e084cb734eb1..02ebf208f48b 100644
--- a/drivers/net/ethernet/intel/e1000e/ethtool.c
+++ b/drivers/net/ethernet/intel/e1000e/ethtool.c
@@ -509,8 +509,8 @@ static int e1000_get_eeprom(struct net_device *netdev,
509 first_word = eeprom->offset >> 1; 509 first_word = eeprom->offset >> 1;
510 last_word = (eeprom->offset + eeprom->len - 1) >> 1; 510 last_word = (eeprom->offset + eeprom->len - 1) >> 1;
511 511
512 eeprom_buff = kmalloc(sizeof(u16) * (last_word - first_word + 1), 512 eeprom_buff = kmalloc_array(last_word - first_word + 1, sizeof(u16),
513 GFP_KERNEL); 513 GFP_KERNEL);
514 if (!eeprom_buff) 514 if (!eeprom_buff)
515 return -ENOMEM; 515 return -ENOMEM;
516 516
diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index acf1e8b52b8e..3ba0c90e7055 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -3312,7 +3312,7 @@ static int e1000e_write_mc_addr_list(struct net_device *netdev)
3312 return 0; 3312 return 0;
3313 } 3313 }
3314 3314
3315 mta_list = kzalloc(netdev_mc_count(netdev) * ETH_ALEN, GFP_ATOMIC); 3315 mta_list = kcalloc(netdev_mc_count(netdev), ETH_ALEN, GFP_ATOMIC);
3316 if (!mta_list) 3316 if (!mta_list)
3317 return -ENOMEM; 3317 return -ENOMEM;
3318 3318
diff --git a/drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c b/drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c
index 7657daa27298..4895dd83dd08 100644
--- a/drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c
+++ b/drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c
@@ -558,7 +558,7 @@ static int fm10k_set_ringparam(struct net_device *netdev,
558 558
559 /* allocate temporary buffer to store rings in */ 559 /* allocate temporary buffer to store rings in */
560 i = max_t(int, interface->num_tx_queues, interface->num_rx_queues); 560 i = max_t(int, interface->num_tx_queues, interface->num_rx_queues);
561 temp_ring = vmalloc(i * sizeof(struct fm10k_ring)); 561 temp_ring = vmalloc(array_size(i, sizeof(struct fm10k_ring)));
562 562
563 if (!temp_ring) { 563 if (!temp_ring) {
564 err = -ENOMEM; 564 err = -ENOMEM;
diff --git a/drivers/net/ethernet/intel/igb/igb_ethtool.c b/drivers/net/ethernet/intel/igb/igb_ethtool.c
index 2d798499d35e..f92f7918112d 100644
--- a/drivers/net/ethernet/intel/igb/igb_ethtool.c
+++ b/drivers/net/ethernet/intel/igb/igb_ethtool.c
@@ -736,8 +736,8 @@ static int igb_get_eeprom(struct net_device *netdev,
736 first_word = eeprom->offset >> 1; 736 first_word = eeprom->offset >> 1;
737 last_word = (eeprom->offset + eeprom->len - 1) >> 1; 737 last_word = (eeprom->offset + eeprom->len - 1) >> 1;
738 738
739 eeprom_buff = kmalloc(sizeof(u16) * 739 eeprom_buff = kmalloc_array(last_word - first_word + 1, sizeof(u16),
740 (last_word - first_word + 1), GFP_KERNEL); 740 GFP_KERNEL);
741 if (!eeprom_buff) 741 if (!eeprom_buff)
742 return -ENOMEM; 742 return -ENOMEM;
743 743
@@ -902,11 +902,11 @@ static int igb_set_ringparam(struct net_device *netdev,
902 } 902 }
903 903
904 if (adapter->num_tx_queues > adapter->num_rx_queues) 904 if (adapter->num_tx_queues > adapter->num_rx_queues)
905 temp_ring = vmalloc(adapter->num_tx_queues * 905 temp_ring = vmalloc(array_size(sizeof(struct igb_ring),
906 sizeof(struct igb_ring)); 906 adapter->num_tx_queues));
907 else 907 else
908 temp_ring = vmalloc(adapter->num_rx_queues * 908 temp_ring = vmalloc(array_size(sizeof(struct igb_ring),
909 sizeof(struct igb_ring)); 909 adapter->num_rx_queues));
910 910
911 if (!temp_ring) { 911 if (!temp_ring) {
912 err = -ENOMEM; 912 err = -ENOMEM;
@@ -3245,8 +3245,8 @@ static int igb_get_module_eeprom(struct net_device *netdev,
3245 first_word = ee->offset >> 1; 3245 first_word = ee->offset >> 1;
3246 last_word = (ee->offset + ee->len - 1) >> 1; 3246 last_word = (ee->offset + ee->len - 1) >> 1;
3247 3247
3248 dataword = kmalloc(sizeof(u16) * (last_word - first_word + 1), 3248 dataword = kmalloc_array(last_word - first_word + 1, sizeof(u16),
3249 GFP_KERNEL); 3249 GFP_KERNEL);
3250 if (!dataword) 3250 if (!dataword)
3251 return -ENOMEM; 3251 return -ENOMEM;
3252 3252
diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index c33821d2afb3..f707709969ac 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -3763,8 +3763,9 @@ static int igb_sw_init(struct igb_adapter *adapter)
3763 /* Assume MSI-X interrupts, will be checked during IRQ allocation */ 3763 /* Assume MSI-X interrupts, will be checked during IRQ allocation */
3764 adapter->flags |= IGB_FLAG_HAS_MSIX; 3764 adapter->flags |= IGB_FLAG_HAS_MSIX;
3765 3765
3766 adapter->mac_table = kzalloc(sizeof(struct igb_mac_addr) * 3766 adapter->mac_table = kcalloc(hw->mac.rar_entry_count,
3767 hw->mac.rar_entry_count, GFP_ATOMIC); 3767 sizeof(struct igb_mac_addr),
3768 GFP_ATOMIC);
3768 if (!adapter->mac_table) 3769 if (!adapter->mac_table)
3769 return -ENOMEM; 3770 return -ENOMEM;
3770 3771
@@ -4752,7 +4753,7 @@ static int igb_write_mc_addr_list(struct net_device *netdev)
4752 return 0; 4753 return 0;
4753 } 4754 }
4754 4755
4755 mta_list = kzalloc(netdev_mc_count(netdev) * 6, GFP_ATOMIC); 4756 mta_list = kcalloc(netdev_mc_count(netdev), 6, GFP_ATOMIC);
4756 if (!mta_list) 4757 if (!mta_list)
4757 return -ENOMEM; 4758 return -ENOMEM;
4758 4759
diff --git a/drivers/net/ethernet/intel/ixgb/ixgb_ethtool.c b/drivers/net/ethernet/intel/ixgb/ixgb_ethtool.c
index 43744bf0fc1c..c8c93ac436d4 100644
--- a/drivers/net/ethernet/intel/ixgb/ixgb_ethtool.c
+++ b/drivers/net/ethernet/intel/ixgb/ixgb_ethtool.c
@@ -375,8 +375,9 @@ ixgb_get_eeprom(struct net_device *netdev,
375 first_word = eeprom->offset >> 1; 375 first_word = eeprom->offset >> 1;
376 last_word = (eeprom->offset + eeprom->len - 1) >> 1; 376 last_word = (eeprom->offset + eeprom->len - 1) >> 1;
377 377
378 eeprom_buff = kmalloc(sizeof(__le16) * 378 eeprom_buff = kmalloc_array(last_word - first_word + 1,
379 (last_word - first_word + 1), GFP_KERNEL); 379 sizeof(__le16),
380 GFP_KERNEL);
380 if (!eeprom_buff) 381 if (!eeprom_buff)
381 return -ENOMEM; 382 return -ENOMEM;
382 383
diff --git a/drivers/net/ethernet/intel/ixgb/ixgb_main.c b/drivers/net/ethernet/intel/ixgb/ixgb_main.c
index 62f2173bc20e..43664adf7a3c 100644
--- a/drivers/net/ethernet/intel/ixgb/ixgb_main.c
+++ b/drivers/net/ethernet/intel/ixgb/ixgb_main.c
@@ -1093,8 +1093,9 @@ ixgb_set_multi(struct net_device *netdev)
1093 rctl |= IXGB_RCTL_MPE; 1093 rctl |= IXGB_RCTL_MPE;
1094 IXGB_WRITE_REG(hw, RCTL, rctl); 1094 IXGB_WRITE_REG(hw, RCTL, rctl);
1095 } else { 1095 } else {
1096 u8 *mta = kmalloc(IXGB_MAX_NUM_MULTICAST_ADDRESSES * 1096 u8 *mta = kmalloc_array(ETH_ALEN,
1097 ETH_ALEN, GFP_ATOMIC); 1097 IXGB_MAX_NUM_MULTICAST_ADDRESSES,
1098 GFP_ATOMIC);
1098 u8 *addr; 1099 u8 *addr;
1099 if (!mta) 1100 if (!mta)
1100 goto alloc_failed; 1101 goto alloc_failed;
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
index bdd179c29ea4..bd1ba88ec1d5 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
@@ -901,7 +901,7 @@ static int ixgbe_get_eeprom(struct net_device *netdev,
901 last_word = (eeprom->offset + eeprom->len - 1) >> 1; 901 last_word = (eeprom->offset + eeprom->len - 1) >> 1;
902 eeprom_len = last_word - first_word + 1; 902 eeprom_len = last_word - first_word + 1;
903 903
904 eeprom_buff = kmalloc(sizeof(u16) * eeprom_len, GFP_KERNEL); 904 eeprom_buff = kmalloc_array(eeprom_len, sizeof(u16), GFP_KERNEL);
905 if (!eeprom_buff) 905 if (!eeprom_buff)
906 return -ENOMEM; 906 return -ENOMEM;
907 907
@@ -1063,7 +1063,7 @@ static int ixgbe_set_ringparam(struct net_device *netdev,
1063 /* allocate temporary buffer to store rings in */ 1063 /* allocate temporary buffer to store rings in */
1064 i = max_t(int, adapter->num_tx_queues + adapter->num_xdp_queues, 1064 i = max_t(int, adapter->num_tx_queues + adapter->num_xdp_queues,
1065 adapter->num_rx_queues); 1065 adapter->num_rx_queues);
1066 temp_ring = vmalloc(i * sizeof(struct ixgbe_ring)); 1066 temp_ring = vmalloc(array_size(i, sizeof(struct ixgbe_ring)));
1067 1067
1068 if (!temp_ring) { 1068 if (!temp_ring) {
1069 err = -ENOMEM; 1069 err = -ENOMEM;
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index 4929f7265598..0b1ba3ae159c 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -6034,8 +6034,8 @@ static int ixgbe_sw_init(struct ixgbe_adapter *adapter,
6034 for (i = 1; i < IXGBE_MAX_LINK_HANDLE; i++) 6034 for (i = 1; i < IXGBE_MAX_LINK_HANDLE; i++)
6035 adapter->jump_tables[i] = NULL; 6035 adapter->jump_tables[i] = NULL;
6036 6036
6037 adapter->mac_table = kzalloc(sizeof(struct ixgbe_mac_addr) * 6037 adapter->mac_table = kcalloc(hw->mac.num_rar_entries,
6038 hw->mac.num_rar_entries, 6038 sizeof(struct ixgbe_mac_addr),
6039 GFP_ATOMIC); 6039 GFP_ATOMIC);
6040 if (!adapter->mac_table) 6040 if (!adapter->mac_table)
6041 return -ENOMEM; 6041 return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/ixgbevf/ethtool.c b/drivers/net/ethernet/intel/ixgbevf/ethtool.c
index e7813d76527c..631c91046f39 100644
--- a/drivers/net/ethernet/intel/ixgbevf/ethtool.c
+++ b/drivers/net/ethernet/intel/ixgbevf/ethtool.c
@@ -282,8 +282,9 @@ static int ixgbevf_set_ringparam(struct net_device *netdev,
282 } 282 }
283 283
284 if (new_tx_count != adapter->tx_ring_count) { 284 if (new_tx_count != adapter->tx_ring_count) {
285 tx_ring = vmalloc((adapter->num_tx_queues + 285 tx_ring = vmalloc(array_size(sizeof(*tx_ring),
286 adapter->num_xdp_queues) * sizeof(*tx_ring)); 286 adapter->num_tx_queues +
287 adapter->num_xdp_queues));
287 if (!tx_ring) { 288 if (!tx_ring) {
288 err = -ENOMEM; 289 err = -ENOMEM;
289 goto clear_reset; 290 goto clear_reset;
@@ -327,7 +328,8 @@ static int ixgbevf_set_ringparam(struct net_device *netdev,
327 } 328 }
328 329
329 if (new_rx_count != adapter->rx_ring_count) { 330 if (new_rx_count != adapter->rx_ring_count) {
330 rx_ring = vmalloc(adapter->num_rx_queues * sizeof(*rx_ring)); 331 rx_ring = vmalloc(array_size(sizeof(*rx_ring),
332 adapter->num_rx_queues));
331 if (!rx_ring) { 333 if (!rx_ring) {
332 err = -ENOMEM; 334 err = -ENOMEM;
333 goto clear_reset; 335 goto clear_reset;
diff --git a/drivers/net/ethernet/jme.c b/drivers/net/ethernet/jme.c
index 8a165842fa85..06ff185eb188 100644
--- a/drivers/net/ethernet/jme.c
+++ b/drivers/net/ethernet/jme.c
@@ -589,8 +589,9 @@ jme_setup_tx_resources(struct jme_adapter *jme)
589 atomic_set(&txring->next_to_clean, 0); 589 atomic_set(&txring->next_to_clean, 0);
590 atomic_set(&txring->nr_free, jme->tx_ring_size); 590 atomic_set(&txring->nr_free, jme->tx_ring_size);
591 591
592 txring->bufinf = kzalloc(sizeof(struct jme_buffer_info) * 592 txring->bufinf = kcalloc(jme->tx_ring_size,
593 jme->tx_ring_size, GFP_ATOMIC); 593 sizeof(struct jme_buffer_info),
594 GFP_ATOMIC);
594 if (unlikely(!(txring->bufinf))) 595 if (unlikely(!(txring->bufinf)))
595 goto err_free_txring; 596 goto err_free_txring;
596 597
@@ -838,8 +839,9 @@ jme_setup_rx_resources(struct jme_adapter *jme)
838 rxring->next_to_use = 0; 839 rxring->next_to_use = 0;
839 atomic_set(&rxring->next_to_clean, 0); 840 atomic_set(&rxring->next_to_clean, 0);
840 841
841 rxring->bufinf = kzalloc(sizeof(struct jme_buffer_info) * 842 rxring->bufinf = kcalloc(jme->rx_ring_size,
842 jme->rx_ring_size, GFP_ATOMIC); 843 sizeof(struct jme_buffer_info),
844 GFP_ATOMIC);
843 if (unlikely(!(rxring->bufinf))) 845 if (unlikely(!(rxring->bufinf)))
844 goto err_free_rxring; 846 goto err_free_rxring;
845 847
diff --git a/drivers/net/ethernet/mellanox/mlx4/alloc.c b/drivers/net/ethernet/mellanox/mlx4/alloc.c
index 6dabd983e7e0..4bdf25059542 100644
--- a/drivers/net/ethernet/mellanox/mlx4/alloc.c
+++ b/drivers/net/ethernet/mellanox/mlx4/alloc.c
@@ -185,8 +185,8 @@ int mlx4_bitmap_init(struct mlx4_bitmap *bitmap, u32 num, u32 mask,
185 bitmap->avail = num - reserved_top - reserved_bot; 185 bitmap->avail = num - reserved_top - reserved_bot;
186 bitmap->effective_len = bitmap->avail; 186 bitmap->effective_len = bitmap->avail;
187 spin_lock_init(&bitmap->lock); 187 spin_lock_init(&bitmap->lock);
188 bitmap->table = kzalloc(BITS_TO_LONGS(bitmap->max) * 188 bitmap->table = kcalloc(BITS_TO_LONGS(bitmap->max), sizeof(long),
189 sizeof(long), GFP_KERNEL); 189 GFP_KERNEL);
190 if (!bitmap->table) 190 if (!bitmap->table)
191 return -ENOMEM; 191 return -ENOMEM;
192 192
diff --git a/drivers/net/ethernet/mellanox/mlx4/cmd.c b/drivers/net/ethernet/mellanox/mlx4/cmd.c
index 6a9086dc1e92..e65bc3c95630 100644
--- a/drivers/net/ethernet/mellanox/mlx4/cmd.c
+++ b/drivers/net/ethernet/mellanox/mlx4/cmd.c
@@ -2377,20 +2377,23 @@ int mlx4_multi_func_init(struct mlx4_dev *dev)
2377 struct mlx4_vf_admin_state *vf_admin; 2377 struct mlx4_vf_admin_state *vf_admin;
2378 2378
2379 priv->mfunc.master.slave_state = 2379 priv->mfunc.master.slave_state =
2380 kzalloc(dev->num_slaves * 2380 kcalloc(dev->num_slaves,
2381 sizeof(struct mlx4_slave_state), GFP_KERNEL); 2381 sizeof(struct mlx4_slave_state),
2382 GFP_KERNEL);
2382 if (!priv->mfunc.master.slave_state) 2383 if (!priv->mfunc.master.slave_state)
2383 goto err_comm; 2384 goto err_comm;
2384 2385
2385 priv->mfunc.master.vf_admin = 2386 priv->mfunc.master.vf_admin =
2386 kzalloc(dev->num_slaves * 2387 kcalloc(dev->num_slaves,
2387 sizeof(struct mlx4_vf_admin_state), GFP_KERNEL); 2388 sizeof(struct mlx4_vf_admin_state),
2389 GFP_KERNEL);
2388 if (!priv->mfunc.master.vf_admin) 2390 if (!priv->mfunc.master.vf_admin)
2389 goto err_comm_admin; 2391 goto err_comm_admin;
2390 2392
2391 priv->mfunc.master.vf_oper = 2393 priv->mfunc.master.vf_oper =
2392 kzalloc(dev->num_slaves * 2394 kcalloc(dev->num_slaves,
2393 sizeof(struct mlx4_vf_oper_state), GFP_KERNEL); 2395 sizeof(struct mlx4_vf_oper_state),
2396 GFP_KERNEL);
2394 if (!priv->mfunc.master.vf_oper) 2397 if (!priv->mfunc.master.vf_oper)
2395 goto err_comm_oper; 2398 goto err_comm_oper;
2396 2399
@@ -2636,9 +2639,9 @@ int mlx4_cmd_use_events(struct mlx4_dev *dev)
2636 int i; 2639 int i;
2637 int err = 0; 2640 int err = 0;
2638 2641
2639 priv->cmd.context = kmalloc(priv->cmd.max_cmds * 2642 priv->cmd.context = kmalloc_array(priv->cmd.max_cmds,
2640 sizeof(struct mlx4_cmd_context), 2643 sizeof(struct mlx4_cmd_context),
2641 GFP_KERNEL); 2644 GFP_KERNEL);
2642 if (!priv->cmd.context) 2645 if (!priv->cmd.context)
2643 return -ENOMEM; 2646 return -ENOMEM;
2644 2647
diff --git a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
index 9670b33fc9b1..65eb06e017e4 100644
--- a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
+++ b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
@@ -2229,13 +2229,15 @@ static int mlx4_en_copy_priv(struct mlx4_en_priv *dst,
2229 if (!dst->tx_ring_num[t]) 2229 if (!dst->tx_ring_num[t])
2230 continue; 2230 continue;
2231 2231
2232 dst->tx_ring[t] = kzalloc(sizeof(struct mlx4_en_tx_ring *) * 2232 dst->tx_ring[t] = kcalloc(MAX_TX_RINGS,
2233 MAX_TX_RINGS, GFP_KERNEL); 2233 sizeof(struct mlx4_en_tx_ring *),
2234 GFP_KERNEL);
2234 if (!dst->tx_ring[t]) 2235 if (!dst->tx_ring[t])
2235 goto err_free_tx; 2236 goto err_free_tx;
2236 2237
2237 dst->tx_cq[t] = kzalloc(sizeof(struct mlx4_en_cq *) * 2238 dst->tx_cq[t] = kcalloc(MAX_TX_RINGS,
2238 MAX_TX_RINGS, GFP_KERNEL); 2239 sizeof(struct mlx4_en_cq *),
2240 GFP_KERNEL);
2239 if (!dst->tx_cq[t]) { 2241 if (!dst->tx_cq[t]) {
2240 kfree(dst->tx_ring[t]); 2242 kfree(dst->tx_ring[t]);
2241 goto err_free_tx; 2243 goto err_free_tx;
@@ -3320,14 +3322,16 @@ int mlx4_en_init_netdev(struct mlx4_en_dev *mdev, int port,
3320 if (!priv->tx_ring_num[t]) 3322 if (!priv->tx_ring_num[t])
3321 continue; 3323 continue;
3322 3324
3323 priv->tx_ring[t] = kzalloc(sizeof(struct mlx4_en_tx_ring *) * 3325 priv->tx_ring[t] = kcalloc(MAX_TX_RINGS,
3324 MAX_TX_RINGS, GFP_KERNEL); 3326 sizeof(struct mlx4_en_tx_ring *),
3327 GFP_KERNEL);
3325 if (!priv->tx_ring[t]) { 3328 if (!priv->tx_ring[t]) {
3326 err = -ENOMEM; 3329 err = -ENOMEM;
3327 goto out; 3330 goto out;
3328 } 3331 }
3329 priv->tx_cq[t] = kzalloc(sizeof(struct mlx4_en_cq *) * 3332 priv->tx_cq[t] = kcalloc(MAX_TX_RINGS,
3330 MAX_TX_RINGS, GFP_KERNEL); 3333 sizeof(struct mlx4_en_cq *),
3334 GFP_KERNEL);
3331 if (!priv->tx_cq[t]) { 3335 if (!priv->tx_cq[t]) {
3332 err = -ENOMEM; 3336 err = -ENOMEM;
3333 goto out; 3337 goto out;
diff --git a/drivers/net/ethernet/mellanox/mlx4/eq.c b/drivers/net/ethernet/mellanox/mlx4/eq.c
index 6f57c052053e..1f3372c1802e 100644
--- a/drivers/net/ethernet/mellanox/mlx4/eq.c
+++ b/drivers/net/ethernet/mellanox/mlx4/eq.c
@@ -1211,8 +1211,9 @@ int mlx4_init_eq_table(struct mlx4_dev *dev)
1211 } 1211 }
1212 1212
1213 priv->eq_table.irq_names = 1213 priv->eq_table.irq_names =
1214 kmalloc(MLX4_IRQNAME_SIZE * (dev->caps.num_comp_vectors + 1), 1214 kmalloc_array(MLX4_IRQNAME_SIZE,
1215 GFP_KERNEL); 1215 (dev->caps.num_comp_vectors + 1),
1216 GFP_KERNEL);
1216 if (!priv->eq_table.irq_names) { 1217 if (!priv->eq_table.irq_names) {
1217 err = -ENOMEM; 1218 err = -ENOMEM;
1218 goto err_out_clr_int; 1219 goto err_out_clr_int;
diff --git a/drivers/net/ethernet/mellanox/mlx4/icm.c b/drivers/net/ethernet/mellanox/mlx4/icm.c
index 5342bd8a3d0b..7262c6310650 100644
--- a/drivers/net/ethernet/mellanox/mlx4/icm.c
+++ b/drivers/net/ethernet/mellanox/mlx4/icm.c
@@ -408,7 +408,7 @@ int mlx4_init_icm_table(struct mlx4_dev *dev, struct mlx4_icm_table *table,
408 return -EINVAL; 408 return -EINVAL;
409 num_icm = (nobj + obj_per_chunk - 1) / obj_per_chunk; 409 num_icm = (nobj + obj_per_chunk - 1) / obj_per_chunk;
410 410
411 table->icm = kvzalloc(num_icm * sizeof(*table->icm), GFP_KERNEL); 411 table->icm = kvcalloc(num_icm, sizeof(*table->icm), GFP_KERNEL);
412 if (!table->icm) 412 if (!table->icm)
413 return -ENOMEM; 413 return -ENOMEM;
414 table->virt = virt; 414 table->virt = virt;
diff --git a/drivers/net/ethernet/mellanox/mlx4/main.c b/drivers/net/ethernet/mellanox/mlx4/main.c
index 0a30d81aab3b..872014702fc1 100644
--- a/drivers/net/ethernet/mellanox/mlx4/main.c
+++ b/drivers/net/ethernet/mellanox/mlx4/main.c
@@ -2982,7 +2982,8 @@ static int mlx4_init_steering(struct mlx4_dev *dev)
2982 int num_entries = dev->caps.num_ports; 2982 int num_entries = dev->caps.num_ports;
2983 int i, j; 2983 int i, j;
2984 2984
2985 priv->steer = kzalloc(sizeof(struct mlx4_steer) * num_entries, GFP_KERNEL); 2985 priv->steer = kcalloc(num_entries, sizeof(struct mlx4_steer),
2986 GFP_KERNEL);
2986 if (!priv->steer) 2987 if (!priv->steer)
2987 return -ENOMEM; 2988 return -ENOMEM;
2988 2989
@@ -3103,7 +3104,7 @@ static u64 mlx4_enable_sriov(struct mlx4_dev *dev, struct pci_dev *pdev,
3103 } 3104 }
3104 } 3105 }
3105 3106
3106 dev->dev_vfs = kzalloc(total_vfs * sizeof(*dev->dev_vfs), GFP_KERNEL); 3107 dev->dev_vfs = kcalloc(total_vfs, sizeof(*dev->dev_vfs), GFP_KERNEL);
3107 if (NULL == dev->dev_vfs) { 3108 if (NULL == dev->dev_vfs) {
3108 mlx4_err(dev, "Failed to allocate memory for VFs\n"); 3109 mlx4_err(dev, "Failed to allocate memory for VFs\n");
3109 goto disable_sriov; 3110 goto disable_sriov;
diff --git a/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c b/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c
index 29e50f787349..7b1b5ac986d0 100644
--- a/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c
+++ b/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c
@@ -487,7 +487,7 @@ int mlx4_init_resource_tracker(struct mlx4_dev *dev)
487 int max_vfs_guarantee_counter = get_max_gauranteed_vfs_counter(dev); 487 int max_vfs_guarantee_counter = get_max_gauranteed_vfs_counter(dev);
488 488
489 priv->mfunc.master.res_tracker.slave_list = 489 priv->mfunc.master.res_tracker.slave_list =
490 kzalloc(dev->num_slaves * sizeof(struct slave_list), 490 kcalloc(dev->num_slaves, sizeof(struct slave_list),
491 GFP_KERNEL); 491 GFP_KERNEL);
492 if (!priv->mfunc.master.res_tracker.slave_list) 492 if (!priv->mfunc.master.res_tracker.slave_list)
493 return -ENOMEM; 493 return -ENOMEM;
@@ -507,19 +507,21 @@ int mlx4_init_resource_tracker(struct mlx4_dev *dev)
507 for (i = 0; i < MLX4_NUM_OF_RESOURCE_TYPE; i++) { 507 for (i = 0; i < MLX4_NUM_OF_RESOURCE_TYPE; i++) {
508 struct resource_allocator *res_alloc = 508 struct resource_allocator *res_alloc =
509 &priv->mfunc.master.res_tracker.res_alloc[i]; 509 &priv->mfunc.master.res_tracker.res_alloc[i];
510 res_alloc->quota = kmalloc((dev->persist->num_vfs + 1) * 510 res_alloc->quota = kmalloc_array(dev->persist->num_vfs + 1,
511 sizeof(int), GFP_KERNEL); 511 sizeof(int),
512 res_alloc->guaranteed = kmalloc((dev->persist->num_vfs + 1) * 512 GFP_KERNEL);
513 sizeof(int), GFP_KERNEL); 513 res_alloc->guaranteed = kmalloc_array(dev->persist->num_vfs + 1,
514 sizeof(int),
515 GFP_KERNEL);
514 if (i == RES_MAC || i == RES_VLAN) 516 if (i == RES_MAC || i == RES_VLAN)
515 res_alloc->allocated = kzalloc(MLX4_MAX_PORTS * 517 res_alloc->allocated =
516 (dev->persist->num_vfs 518 kcalloc(MLX4_MAX_PORTS *
517 + 1) * 519 (dev->persist->num_vfs + 1),
518 sizeof(int), GFP_KERNEL); 520 sizeof(int), GFP_KERNEL);
519 else 521 else
520 res_alloc->allocated = kzalloc((dev->persist-> 522 res_alloc->allocated =
521 num_vfs + 1) * 523 kcalloc(dev->persist->num_vfs + 1,
522 sizeof(int), GFP_KERNEL); 524 sizeof(int), GFP_KERNEL);
523 /* Reduce the sink counter */ 525 /* Reduce the sink counter */
524 if (i == RES_COUNTER) 526 if (i == RES_COUNTER)
525 res_alloc->res_free = dev->caps.max_counters - 1; 527 res_alloc->res_free = dev->caps.max_counters - 1;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
index 89c96a0f708e..56c1b6f5593e 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
@@ -352,7 +352,7 @@ static int mlx5e_rq_alloc_mpwqe_info(struct mlx5e_rq *rq,
352{ 352{
353 int wq_sz = mlx5_wq_ll_get_size(&rq->mpwqe.wq); 353 int wq_sz = mlx5_wq_ll_get_size(&rq->mpwqe.wq);
354 354
355 rq->mpwqe.info = kzalloc_node(wq_sz * sizeof(*rq->mpwqe.info), 355 rq->mpwqe.info = kcalloc_node(wq_sz, sizeof(*rq->mpwqe.info),
356 GFP_KERNEL, cpu_to_node(c->cpu)); 356 GFP_KERNEL, cpu_to_node(c->cpu));
357 if (!rq->mpwqe.info) 357 if (!rq->mpwqe.info)
358 return -ENOMEM; 358 return -ENOMEM;
@@ -448,7 +448,7 @@ static int mlx5e_init_di_list(struct mlx5e_rq *rq,
448{ 448{
449 int len = wq_sz << rq->wqe.info.log_num_frags; 449 int len = wq_sz << rq->wqe.info.log_num_frags;
450 450
451 rq->wqe.di = kvzalloc_node(len * sizeof(*rq->wqe.di), 451 rq->wqe.di = kvzalloc_node(array_size(len, sizeof(*rq->wqe.di)),
452 GFP_KERNEL, cpu_to_node(cpu)); 452 GFP_KERNEL, cpu_to_node(cpu));
453 if (!rq->wqe.di) 453 if (!rq->wqe.di)
454 return -ENOMEM; 454 return -ENOMEM;
@@ -563,8 +563,8 @@ static int mlx5e_alloc_rq(struct mlx5e_channel *c,
563 563
564 rq->wqe.info = rqp->frags_info; 564 rq->wqe.info = rqp->frags_info;
565 rq->wqe.frags = 565 rq->wqe.frags =
566 kvzalloc_node((wq_sz << rq->wqe.info.log_num_frags) * 566 kvzalloc_node(array_size(sizeof(*rq->wqe.frags),
567 sizeof(*rq->wqe.frags), 567 (wq_sz << rq->wqe.info.log_num_frags)),
568 GFP_KERNEL, cpu_to_node(c->cpu)); 568 GFP_KERNEL, cpu_to_node(c->cpu));
569 if (!rq->wqe.frags) { 569 if (!rq->wqe.frags) {
570 err = -ENOMEM; 570 err = -ENOMEM;
@@ -972,7 +972,7 @@ static int mlx5e_alloc_xdpsq_db(struct mlx5e_xdpsq *sq, int numa)
972{ 972{
973 int wq_sz = mlx5_wq_cyc_get_size(&sq->wq); 973 int wq_sz = mlx5_wq_cyc_get_size(&sq->wq);
974 974
975 sq->db.di = kzalloc_node(sizeof(*sq->db.di) * wq_sz, 975 sq->db.di = kcalloc_node(wq_sz, sizeof(*sq->db.di),
976 GFP_KERNEL, numa); 976 GFP_KERNEL, numa);
977 if (!sq->db.di) { 977 if (!sq->db.di) {
978 mlx5e_free_xdpsq_db(sq); 978 mlx5e_free_xdpsq_db(sq);
@@ -1031,7 +1031,7 @@ static int mlx5e_alloc_icosq_db(struct mlx5e_icosq *sq, int numa)
1031{ 1031{
1032 u8 wq_sz = mlx5_wq_cyc_get_size(&sq->wq); 1032 u8 wq_sz = mlx5_wq_cyc_get_size(&sq->wq);
1033 1033
1034 sq->db.ico_wqe = kzalloc_node(sizeof(*sq->db.ico_wqe) * wq_sz, 1034 sq->db.ico_wqe = kcalloc_node(wq_sz, sizeof(*sq->db.ico_wqe),
1035 GFP_KERNEL, numa); 1035 GFP_KERNEL, numa);
1036 if (!sq->db.ico_wqe) 1036 if (!sq->db.ico_wqe)
1037 return -ENOMEM; 1037 return -ENOMEM;
@@ -1086,9 +1086,9 @@ static int mlx5e_alloc_txqsq_db(struct mlx5e_txqsq *sq, int numa)
1086 int wq_sz = mlx5_wq_cyc_get_size(&sq->wq); 1086 int wq_sz = mlx5_wq_cyc_get_size(&sq->wq);
1087 int df_sz = wq_sz * MLX5_SEND_WQEBB_NUM_DS; 1087 int df_sz = wq_sz * MLX5_SEND_WQEBB_NUM_DS;
1088 1088
1089 sq->db.dma_fifo = kzalloc_node(df_sz * sizeof(*sq->db.dma_fifo), 1089 sq->db.dma_fifo = kcalloc_node(df_sz, sizeof(*sq->db.dma_fifo),
1090 GFP_KERNEL, numa); 1090 GFP_KERNEL, numa);
1091 sq->db.wqe_info = kzalloc_node(wq_sz * sizeof(*sq->db.wqe_info), 1091 sq->db.wqe_info = kcalloc_node(wq_sz, sizeof(*sq->db.wqe_info),
1092 GFP_KERNEL, numa); 1092 GFP_KERNEL, numa);
1093 if (!sq->db.dma_fifo || !sq->db.wqe_info) { 1093 if (!sq->db.dma_fifo || !sq->db.wqe_info) {
1094 mlx5e_free_txqsq_db(sq); 1094 mlx5e_free_txqsq_db(sq);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c b/drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
index 4138a770ed57..8ca1d1949d93 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
@@ -549,15 +549,17 @@ static int mlx5_fpga_conn_create_qp(struct mlx5_fpga_conn *conn,
549 if (err) 549 if (err)
550 goto out; 550 goto out;
551 551
552 conn->qp.rq.bufs = kvzalloc(sizeof(conn->qp.rq.bufs[0]) * 552 conn->qp.rq.bufs = kvcalloc(conn->qp.rq.size,
553 conn->qp.rq.size, GFP_KERNEL); 553 sizeof(conn->qp.rq.bufs[0]),
554 GFP_KERNEL);
554 if (!conn->qp.rq.bufs) { 555 if (!conn->qp.rq.bufs) {
555 err = -ENOMEM; 556 err = -ENOMEM;
556 goto err_wq; 557 goto err_wq;
557 } 558 }
558 559
559 conn->qp.sq.bufs = kvzalloc(sizeof(conn->qp.sq.bufs[0]) * 560 conn->qp.sq.bufs = kvcalloc(conn->qp.sq.size,
560 conn->qp.sq.size, GFP_KERNEL); 561 sizeof(conn->qp.sq.bufs[0]),
562 GFP_KERNEL);
561 if (!conn->qp.sq.bufs) { 563 if (!conn->qp.sq.bufs) {
562 err = -ENOMEM; 564 err = -ENOMEM;
563 goto err_rq_bufs; 565 goto err_rq_bufs;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/fpga/ipsec.c b/drivers/net/ethernet/mellanox/mlx5/core/fpga/ipsec.c
index a0433b48e833..5645a4facad2 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/fpga/ipsec.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/fpga/ipsec.c
@@ -381,7 +381,7 @@ int mlx5_fpga_ipsec_counters_read(struct mlx5_core_dev *mdev, u64 *counters,
381 381
382 count = mlx5_fpga_ipsec_counters_count(mdev); 382 count = mlx5_fpga_ipsec_counters_count(mdev);
383 383
384 data = kzalloc(sizeof(*data) * count * 2, GFP_KERNEL); 384 data = kzalloc(array3_size(sizeof(*data), count, 2), GFP_KERNEL);
385 if (!data) { 385 if (!data) {
386 ret = -ENOMEM; 386 ret = -ENOMEM;
387 goto out; 387 goto out;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
index 857035583ccd..1e062e6b2587 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
@@ -394,8 +394,9 @@ static int mlx5_init_pin_config(struct mlx5_clock *clock)
394 int i; 394 int i;
395 395
396 clock->ptp_info.pin_config = 396 clock->ptp_info.pin_config =
397 kzalloc(sizeof(*clock->ptp_info.pin_config) * 397 kcalloc(clock->ptp_info.n_pins,
398 clock->ptp_info.n_pins, GFP_KERNEL); 398 sizeof(*clock->ptp_info.pin_config),
399 GFP_KERNEL);
399 if (!clock->ptp_info.pin_config) 400 if (!clock->ptp_info.pin_config)
400 return -ENOMEM; 401 return -ENOMEM;
401 clock->ptp_info.enable = mlx5_ptp_enable; 402 clock->ptp_info.enable = mlx5_ptp_enable;
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
index 91262b0573e3..cad603c35271 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
@@ -740,7 +740,8 @@ int mlxsw_sp_tc_qdisc_init(struct mlxsw_sp_port *mlxsw_sp_port)
740 mlxsw_sp_port->root_qdisc->prio_bitmap = 0xff; 740 mlxsw_sp_port->root_qdisc->prio_bitmap = 0xff;
741 mlxsw_sp_port->root_qdisc->tclass_num = MLXSW_SP_PORT_DEFAULT_TCLASS; 741 mlxsw_sp_port->root_qdisc->tclass_num = MLXSW_SP_PORT_DEFAULT_TCLASS;
742 742
743 mlxsw_sp_qdisc = kzalloc(sizeof(*mlxsw_sp_qdisc) * IEEE_8021QAZ_MAX_TCS, 743 mlxsw_sp_qdisc = kcalloc(IEEE_8021QAZ_MAX_TCS,
744 sizeof(*mlxsw_sp_qdisc),
744 GFP_KERNEL); 745 GFP_KERNEL);
745 if (!mlxsw_sp_qdisc) 746 if (!mlxsw_sp_qdisc)
746 goto err_tclass_qdiscs_init; 747 goto err_tclass_qdiscs_init;
diff --git a/drivers/net/ethernet/micrel/ksz884x.c b/drivers/net/ethernet/micrel/ksz884x.c
index 52207508744c..b72d1bd11296 100644
--- a/drivers/net/ethernet/micrel/ksz884x.c
+++ b/drivers/net/ethernet/micrel/ksz884x.c
@@ -4372,7 +4372,7 @@ static void ksz_update_timer(struct ksz_timer_info *info)
4372 */ 4372 */
4373static int ksz_alloc_soft_desc(struct ksz_desc_info *desc_info, int transmit) 4373static int ksz_alloc_soft_desc(struct ksz_desc_info *desc_info, int transmit)
4374{ 4374{
4375 desc_info->ring = kzalloc(sizeof(struct ksz_desc) * desc_info->alloc, 4375 desc_info->ring = kcalloc(desc_info->alloc, sizeof(struct ksz_desc),
4376 GFP_KERNEL); 4376 GFP_KERNEL);
4377 if (!desc_info->ring) 4377 if (!desc_info->ring)
4378 return 1; 4378 return 1;
diff --git a/drivers/net/ethernet/moxa/moxart_ether.c b/drivers/net/ethernet/moxa/moxart_ether.c
index 2e4effa9fe45..b34055ac476f 100644
--- a/drivers/net/ethernet/moxa/moxart_ether.c
+++ b/drivers/net/ethernet/moxa/moxart_ether.c
@@ -507,15 +507,15 @@ static int moxart_mac_probe(struct platform_device *pdev)
507 goto init_fail; 507 goto init_fail;
508 } 508 }
509 509
510 priv->tx_buf_base = kmalloc(priv->tx_buf_size * TX_DESC_NUM, 510 priv->tx_buf_base = kmalloc_array(priv->tx_buf_size, TX_DESC_NUM,
511 GFP_ATOMIC); 511 GFP_ATOMIC);
512 if (!priv->tx_buf_base) { 512 if (!priv->tx_buf_base) {
513 ret = -ENOMEM; 513 ret = -ENOMEM;
514 goto init_fail; 514 goto init_fail;
515 } 515 }
516 516
517 priv->rx_buf_base = kmalloc(priv->rx_buf_size * RX_DESC_NUM, 517 priv->rx_buf_base = kmalloc_array(priv->rx_buf_size, RX_DESC_NUM,
518 GFP_ATOMIC); 518 GFP_ATOMIC);
519 if (!priv->rx_buf_base) { 519 if (!priv->rx_buf_base) {
520 ret = -ENOMEM; 520 ret = -ENOMEM;
521 goto init_fail; 521 goto init_fail;
diff --git a/drivers/net/ethernet/neterion/vxge/vxge-config.c b/drivers/net/ethernet/neterion/vxge/vxge-config.c
index c60da9e8bf14..358ed6118881 100644
--- a/drivers/net/ethernet/neterion/vxge/vxge-config.c
+++ b/drivers/net/ethernet/neterion/vxge/vxge-config.c
@@ -2220,22 +2220,22 @@ __vxge_hw_channel_allocate(struct __vxge_hw_vpath_handle *vph,
2220 channel->length = length; 2220 channel->length = length;
2221 channel->vp_id = vp_id; 2221 channel->vp_id = vp_id;
2222 2222
2223 channel->work_arr = kzalloc(sizeof(void *)*length, GFP_KERNEL); 2223 channel->work_arr = kcalloc(length, sizeof(void *), GFP_KERNEL);
2224 if (channel->work_arr == NULL) 2224 if (channel->work_arr == NULL)
2225 goto exit1; 2225 goto exit1;
2226 2226
2227 channel->free_arr = kzalloc(sizeof(void *)*length, GFP_KERNEL); 2227 channel->free_arr = kcalloc(length, sizeof(void *), GFP_KERNEL);
2228 if (channel->free_arr == NULL) 2228 if (channel->free_arr == NULL)
2229 goto exit1; 2229 goto exit1;
2230 channel->free_ptr = length; 2230 channel->free_ptr = length;
2231 2231
2232 channel->reserve_arr = kzalloc(sizeof(void *)*length, GFP_KERNEL); 2232 channel->reserve_arr = kcalloc(length, sizeof(void *), GFP_KERNEL);
2233 if (channel->reserve_arr == NULL) 2233 if (channel->reserve_arr == NULL)
2234 goto exit1; 2234 goto exit1;
2235 channel->reserve_ptr = length; 2235 channel->reserve_ptr = length;
2236 channel->reserve_top = 0; 2236 channel->reserve_top = 0;
2237 2237
2238 channel->orig_arr = kzalloc(sizeof(void *)*length, GFP_KERNEL); 2238 channel->orig_arr = kcalloc(length, sizeof(void *), GFP_KERNEL);
2239 if (channel->orig_arr == NULL) 2239 if (channel->orig_arr == NULL)
2240 goto exit1; 2240 goto exit1;
2241 2241
@@ -2565,7 +2565,7 @@ __vxge_hw_mempool_grow(struct vxge_hw_mempool *mempool, u32 num_allocate,
2565 * allocate new memblock and its private part at once. 2565 * allocate new memblock and its private part at once.
2566 * This helps to minimize memory usage a lot. */ 2566 * This helps to minimize memory usage a lot. */
2567 mempool->memblocks_priv_arr[i] = 2567 mempool->memblocks_priv_arr[i] =
2568 vzalloc(mempool->items_priv_size * n_items); 2568 vzalloc(array_size(mempool->items_priv_size, n_items));
2569 if (mempool->memblocks_priv_arr[i] == NULL) { 2569 if (mempool->memblocks_priv_arr[i] == NULL) {
2570 status = VXGE_HW_ERR_OUT_OF_MEMORY; 2570 status = VXGE_HW_ERR_OUT_OF_MEMORY;
2571 goto exit; 2571 goto exit;
@@ -2665,7 +2665,7 @@ __vxge_hw_mempool_create(struct __vxge_hw_device *devh,
2665 2665
2666 /* allocate array of memblocks */ 2666 /* allocate array of memblocks */
2667 mempool->memblocks_arr = 2667 mempool->memblocks_arr =
2668 vzalloc(sizeof(void *) * mempool->memblocks_max); 2668 vzalloc(array_size(sizeof(void *), mempool->memblocks_max));
2669 if (mempool->memblocks_arr == NULL) { 2669 if (mempool->memblocks_arr == NULL) {
2670 __vxge_hw_mempool_destroy(mempool); 2670 __vxge_hw_mempool_destroy(mempool);
2671 status = VXGE_HW_ERR_OUT_OF_MEMORY; 2671 status = VXGE_HW_ERR_OUT_OF_MEMORY;
@@ -2675,7 +2675,7 @@ __vxge_hw_mempool_create(struct __vxge_hw_device *devh,
2675 2675
2676 /* allocate array of private parts of items per memblocks */ 2676 /* allocate array of private parts of items per memblocks */
2677 mempool->memblocks_priv_arr = 2677 mempool->memblocks_priv_arr =
2678 vzalloc(sizeof(void *) * mempool->memblocks_max); 2678 vzalloc(array_size(sizeof(void *), mempool->memblocks_max));
2679 if (mempool->memblocks_priv_arr == NULL) { 2679 if (mempool->memblocks_priv_arr == NULL) {
2680 __vxge_hw_mempool_destroy(mempool); 2680 __vxge_hw_mempool_destroy(mempool);
2681 status = VXGE_HW_ERR_OUT_OF_MEMORY; 2681 status = VXGE_HW_ERR_OUT_OF_MEMORY;
@@ -2685,8 +2685,8 @@ __vxge_hw_mempool_create(struct __vxge_hw_device *devh,
2685 2685
2686 /* allocate array of memblocks DMA objects */ 2686 /* allocate array of memblocks DMA objects */
2687 mempool->memblocks_dma_arr = 2687 mempool->memblocks_dma_arr =
2688 vzalloc(sizeof(struct vxge_hw_mempool_dma) * 2688 vzalloc(array_size(sizeof(struct vxge_hw_mempool_dma),
2689 mempool->memblocks_max); 2689 mempool->memblocks_max));
2690 if (mempool->memblocks_dma_arr == NULL) { 2690 if (mempool->memblocks_dma_arr == NULL) {
2691 __vxge_hw_mempool_destroy(mempool); 2691 __vxge_hw_mempool_destroy(mempool);
2692 status = VXGE_HW_ERR_OUT_OF_MEMORY; 2692 status = VXGE_HW_ERR_OUT_OF_MEMORY;
@@ -2695,7 +2695,8 @@ __vxge_hw_mempool_create(struct __vxge_hw_device *devh,
2695 } 2695 }
2696 2696
2697 /* allocate hash array of items */ 2697 /* allocate hash array of items */
2698 mempool->items_arr = vzalloc(sizeof(void *) * mempool->items_max); 2698 mempool->items_arr = vzalloc(array_size(sizeof(void *),
2699 mempool->items_max));
2699 if (mempool->items_arr == NULL) { 2700 if (mempool->items_arr == NULL) {
2700 __vxge_hw_mempool_destroy(mempool); 2701 __vxge_hw_mempool_destroy(mempool);
2701 status = VXGE_HW_ERR_OUT_OF_MEMORY; 2702 status = VXGE_HW_ERR_OUT_OF_MEMORY;
diff --git a/drivers/net/ethernet/neterion/vxge/vxge-main.c b/drivers/net/ethernet/neterion/vxge/vxge-main.c
index a8918bb7c802..5ae3fa82909f 100644
--- a/drivers/net/ethernet/neterion/vxge/vxge-main.c
+++ b/drivers/net/ethernet/neterion/vxge/vxge-main.c
@@ -3429,8 +3429,8 @@ static int vxge_device_register(struct __vxge_hw_device *hldev,
3429 vxge_initialize_ethtool_ops(ndev); 3429 vxge_initialize_ethtool_ops(ndev);
3430 3430
3431 /* Allocate memory for vpath */ 3431 /* Allocate memory for vpath */
3432 vdev->vpaths = kzalloc((sizeof(struct vxge_vpath)) * 3432 vdev->vpaths = kcalloc(no_of_vpath, sizeof(struct vxge_vpath),
3433 no_of_vpath, GFP_KERNEL); 3433 GFP_KERNEL);
3434 if (!vdev->vpaths) { 3434 if (!vdev->vpaths) {
3435 vxge_debug_init(VXGE_ERR, 3435 vxge_debug_init(VXGE_ERR,
3436 "%s: vpath memory allocation failed", 3436 "%s: vpath memory allocation failed",
diff --git a/drivers/net/ethernet/netronome/nfp/abm/main.c b/drivers/net/ethernet/netronome/nfp/abm/main.c
index 1561c2724c26..b84a6c2d387b 100644
--- a/drivers/net/ethernet/netronome/nfp/abm/main.c
+++ b/drivers/net/ethernet/netronome/nfp/abm/main.c
@@ -590,7 +590,7 @@ nfp_abm_vnic_alloc(struct nfp_app *app, struct nfp_net *nn, unsigned int id)
590 alink->id = id; 590 alink->id = id;
591 alink->parent = TC_H_ROOT; 591 alink->parent = TC_H_ROOT;
592 alink->total_queues = alink->vnic->max_rx_rings; 592 alink->total_queues = alink->vnic->max_rx_rings;
593 alink->qdiscs = kvzalloc(sizeof(*alink->qdiscs) * alink->total_queues, 593 alink->qdiscs = kvcalloc(alink->total_queues, sizeof(*alink->qdiscs),
594 GFP_KERNEL); 594 GFP_KERNEL);
595 if (!alink->qdiscs) { 595 if (!alink->qdiscs) {
596 err = -ENOMEM; 596 err = -ENOMEM;
diff --git a/drivers/net/ethernet/netronome/nfp/flower/metadata.c b/drivers/net/ethernet/netronome/nfp/flower/metadata.c
index 21668aa435e8..93fb809f50d1 100644
--- a/drivers/net/ethernet/netronome/nfp/flower/metadata.c
+++ b/drivers/net/ethernet/netronome/nfp/flower/metadata.c
@@ -417,7 +417,8 @@ int nfp_flower_metadata_init(struct nfp_app *app)
417 417
418 /* Init ring buffer and unallocated stats_ids. */ 418 /* Init ring buffer and unallocated stats_ids. */
419 priv->stats_ids.free_list.buf = 419 priv->stats_ids.free_list.buf =
420 vmalloc(NFP_FL_STATS_ENTRY_RS * NFP_FL_STATS_ELEM_RS); 420 vmalloc(array_size(NFP_FL_STATS_ELEM_RS,
421 NFP_FL_STATS_ENTRY_RS));
421 if (!priv->stats_ids.free_list.buf) 422 if (!priv->stats_ids.free_list.buf)
422 goto err_free_last_used; 423 goto err_free_last_used;
423 424
diff --git a/drivers/net/ethernet/ni/nixge.c b/drivers/net/ethernet/ni/nixge.c
index b092894dd128..09f674ec0f9e 100644
--- a/drivers/net/ethernet/ni/nixge.c
+++ b/drivers/net/ethernet/ni/nixge.c
@@ -247,9 +247,8 @@ static int nixge_hw_dma_bd_init(struct net_device *ndev)
247 if (!priv->tx_bd_v) 247 if (!priv->tx_bd_v)
248 goto out; 248 goto out;
249 249
250 priv->tx_skb = devm_kzalloc(ndev->dev.parent, 250 priv->tx_skb = devm_kcalloc(ndev->dev.parent,
251 sizeof(*priv->tx_skb) * 251 TX_BD_NUM, sizeof(*priv->tx_skb),
252 TX_BD_NUM,
253 GFP_KERNEL); 252 GFP_KERNEL);
254 if (!priv->tx_skb) 253 if (!priv->tx_skb)
255 goto out; 254 goto out;
diff --git a/drivers/net/ethernet/nvidia/forcedeth.c b/drivers/net/ethernet/nvidia/forcedeth.c
index 66c665d0b926..7cbd0174459c 100644
--- a/drivers/net/ethernet/nvidia/forcedeth.c
+++ b/drivers/net/ethernet/nvidia/forcedeth.c
@@ -4630,8 +4630,10 @@ static int nv_set_ringparam(struct net_device *dev, struct ethtool_ringparam* ri
4630 ring->tx_pending), 4630 ring->tx_pending),
4631 &ring_addr, GFP_ATOMIC); 4631 &ring_addr, GFP_ATOMIC);
4632 } 4632 }
4633 rx_skbuff = kmalloc(sizeof(struct nv_skb_map) * ring->rx_pending, GFP_KERNEL); 4633 rx_skbuff = kmalloc_array(ring->rx_pending, sizeof(struct nv_skb_map),
4634 tx_skbuff = kmalloc(sizeof(struct nv_skb_map) * ring->tx_pending, GFP_KERNEL); 4634 GFP_KERNEL);
4635 tx_skbuff = kmalloc_array(ring->tx_pending, sizeof(struct nv_skb_map),
4636 GFP_KERNEL);
4635 if (!rxtx_ring || !rx_skbuff || !tx_skbuff) { 4637 if (!rxtx_ring || !rx_skbuff || !tx_skbuff) {
4636 /* fall back to old rings */ 4638 /* fall back to old rings */
4637 if (!nv_optimized(np)) { 4639 if (!nv_optimized(np)) {
diff --git a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
index 7cd494611a74..34a1581eda95 100644
--- a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
+++ b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
@@ -2178,7 +2178,7 @@ static void pch_gbe_set_multi(struct net_device *netdev)
2178 2178
2179 if (mc_count >= PCH_GBE_MAR_ENTRIES) 2179 if (mc_count >= PCH_GBE_MAR_ENTRIES)
2180 return; 2180 return;
2181 mta_list = kmalloc(mc_count * ETH_ALEN, GFP_ATOMIC); 2181 mta_list = kmalloc_array(ETH_ALEN, mc_count, GFP_ATOMIC);
2182 if (!mta_list) 2182 if (!mta_list)
2183 return; 2183 return;
2184 2184
diff --git a/drivers/net/ethernet/pasemi/pasemi_mac.c b/drivers/net/ethernet/pasemi/pasemi_mac.c
index 07a2eb3781b1..8a31a02c9f47 100644
--- a/drivers/net/ethernet/pasemi/pasemi_mac.c
+++ b/drivers/net/ethernet/pasemi/pasemi_mac.c
@@ -390,8 +390,9 @@ static int pasemi_mac_setup_rx_resources(const struct net_device *dev)
390 spin_lock_init(&ring->lock); 390 spin_lock_init(&ring->lock);
391 391
392 ring->size = RX_RING_SIZE; 392 ring->size = RX_RING_SIZE;
393 ring->ring_info = kzalloc(sizeof(struct pasemi_mac_buffer) * 393 ring->ring_info = kcalloc(RX_RING_SIZE,
394 RX_RING_SIZE, GFP_KERNEL); 394 sizeof(struct pasemi_mac_buffer),
395 GFP_KERNEL);
395 396
396 if (!ring->ring_info) 397 if (!ring->ring_info)
397 goto out_ring_info; 398 goto out_ring_info;
@@ -473,8 +474,9 @@ pasemi_mac_setup_tx_resources(const struct net_device *dev)
473 spin_lock_init(&ring->lock); 474 spin_lock_init(&ring->lock);
474 475
475 ring->size = TX_RING_SIZE; 476 ring->size = TX_RING_SIZE;
476 ring->ring_info = kzalloc(sizeof(struct pasemi_mac_buffer) * 477 ring->ring_info = kcalloc(TX_RING_SIZE,
477 TX_RING_SIZE, GFP_KERNEL); 478 sizeof(struct pasemi_mac_buffer),
479 GFP_KERNEL);
478 if (!ring->ring_info) 480 if (!ring->ring_info)
479 goto out_ring_info; 481 goto out_ring_info;
480 482
diff --git a/drivers/net/ethernet/qlogic/qed/qed_debug.c b/drivers/net/ethernet/qlogic/qed/qed_debug.c
index b9ec460dd996..a14e48489029 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_debug.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_debug.c
@@ -6617,7 +6617,8 @@ static enum dbg_status qed_mcp_trace_alloc_meta(struct qed_hwfn *p_hwfn,
6617 6617
6618 /* Read no. of modules and allocate memory for their pointers */ 6618 /* Read no. of modules and allocate memory for their pointers */
6619 meta->modules_num = qed_read_byte_from_buf(meta_buf_bytes, &offset); 6619 meta->modules_num = qed_read_byte_from_buf(meta_buf_bytes, &offset);
6620 meta->modules = kzalloc(meta->modules_num * sizeof(char *), GFP_KERNEL); 6620 meta->modules = kcalloc(meta->modules_num, sizeof(char *),
6621 GFP_KERNEL);
6621 if (!meta->modules) 6622 if (!meta->modules)
6622 return DBG_STATUS_VIRT_MEM_ALLOC_FAILED; 6623 return DBG_STATUS_VIRT_MEM_ALLOC_FAILED;
6623 6624
@@ -6645,7 +6646,7 @@ static enum dbg_status qed_mcp_trace_alloc_meta(struct qed_hwfn *p_hwfn,
6645 6646
6646 /* Read number of formats and allocate memory for all formats */ 6647 /* Read number of formats and allocate memory for all formats */
6647 meta->formats_num = qed_read_dword_from_buf(meta_buf_bytes, &offset); 6648 meta->formats_num = qed_read_dword_from_buf(meta_buf_bytes, &offset);
6648 meta->formats = kzalloc(meta->formats_num * 6649 meta->formats = kcalloc(meta->formats_num,
6649 sizeof(struct mcp_trace_format), 6650 sizeof(struct mcp_trace_format),
6650 GFP_KERNEL); 6651 GFP_KERNEL);
6651 if (!meta->formats) 6652 if (!meta->formats)
diff --git a/drivers/net/ethernet/qlogic/qed/qed_dev.c b/drivers/net/ethernet/qlogic/qed/qed_dev.c
index b285edc8d6a1..329781cda77f 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_dev.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_dev.c
@@ -814,26 +814,26 @@ static int qed_alloc_qm_data(struct qed_hwfn *p_hwfn)
814 if (rc) 814 if (rc)
815 goto alloc_err; 815 goto alloc_err;
816 816
817 qm_info->qm_pq_params = kzalloc(sizeof(*qm_info->qm_pq_params) * 817 qm_info->qm_pq_params = kcalloc(qed_init_qm_get_num_pqs(p_hwfn),
818 qed_init_qm_get_num_pqs(p_hwfn), 818 sizeof(*qm_info->qm_pq_params),
819 GFP_KERNEL); 819 GFP_KERNEL);
820 if (!qm_info->qm_pq_params) 820 if (!qm_info->qm_pq_params)
821 goto alloc_err; 821 goto alloc_err;
822 822
823 qm_info->qm_vport_params = kzalloc(sizeof(*qm_info->qm_vport_params) * 823 qm_info->qm_vport_params = kcalloc(qed_init_qm_get_num_vports(p_hwfn),
824 qed_init_qm_get_num_vports(p_hwfn), 824 sizeof(*qm_info->qm_vport_params),
825 GFP_KERNEL); 825 GFP_KERNEL);
826 if (!qm_info->qm_vport_params) 826 if (!qm_info->qm_vport_params)
827 goto alloc_err; 827 goto alloc_err;
828 828
829 qm_info->qm_port_params = kzalloc(sizeof(*qm_info->qm_port_params) * 829 qm_info->qm_port_params = kcalloc(p_hwfn->cdev->num_ports_in_engine,
830 p_hwfn->cdev->num_ports_in_engine, 830 sizeof(*qm_info->qm_port_params),
831 GFP_KERNEL); 831 GFP_KERNEL);
832 if (!qm_info->qm_port_params) 832 if (!qm_info->qm_port_params)
833 goto alloc_err; 833 goto alloc_err;
834 834
835 qm_info->wfq_data = kzalloc(sizeof(*qm_info->wfq_data) * 835 qm_info->wfq_data = kcalloc(qed_init_qm_get_num_vports(p_hwfn),
836 qed_init_qm_get_num_vports(p_hwfn), 836 sizeof(*qm_info->wfq_data),
837 GFP_KERNEL); 837 GFP_KERNEL);
838 if (!qm_info->wfq_data) 838 if (!qm_info->wfq_data)
839 goto alloc_err; 839 goto alloc_err;
diff --git a/drivers/net/ethernet/qlogic/qed/qed_init_ops.c b/drivers/net/ethernet/qlogic/qed/qed_init_ops.c
index 3bb76da6baa2..d9ab5add27a8 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_init_ops.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_init_ops.c
@@ -149,12 +149,12 @@ int qed_init_alloc(struct qed_hwfn *p_hwfn)
149 if (IS_VF(p_hwfn->cdev)) 149 if (IS_VF(p_hwfn->cdev))
150 return 0; 150 return 0;
151 151
152 rt_data->b_valid = kzalloc(sizeof(bool) * RUNTIME_ARRAY_SIZE, 152 rt_data->b_valid = kcalloc(RUNTIME_ARRAY_SIZE, sizeof(bool),
153 GFP_KERNEL); 153 GFP_KERNEL);
154 if (!rt_data->b_valid) 154 if (!rt_data->b_valid)
155 return -ENOMEM; 155 return -ENOMEM;
156 156
157 rt_data->init_val = kzalloc(sizeof(u32) * RUNTIME_ARRAY_SIZE, 157 rt_data->init_val = kcalloc(RUNTIME_ARRAY_SIZE, sizeof(u32),
158 GFP_KERNEL); 158 GFP_KERNEL);
159 if (!rt_data->init_val) { 159 if (!rt_data->init_val) {
160 kfree(rt_data->b_valid); 160 kfree(rt_data->b_valid);
diff --git a/drivers/net/ethernet/qlogic/qed/qed_l2.c b/drivers/net/ethernet/qlogic/qed/qed_l2.c
index 1f6ac848109d..99973e10b179 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_l2.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_l2.c
@@ -98,7 +98,7 @@ int qed_l2_alloc(struct qed_hwfn *p_hwfn)
98 p_l2_info->queues = max_t(u8, rx, tx); 98 p_l2_info->queues = max_t(u8, rx, tx);
99 } 99 }
100 100
101 pp_qids = kzalloc(sizeof(unsigned long *) * p_l2_info->queues, 101 pp_qids = kcalloc(p_l2_info->queues, sizeof(unsigned long *),
102 GFP_KERNEL); 102 GFP_KERNEL);
103 if (!pp_qids) 103 if (!pp_qids)
104 return -ENOMEM; 104 return -ENOMEM;
@@ -2435,7 +2435,7 @@ static int qed_update_vport(struct qed_dev *cdev,
2435 if (!cdev) 2435 if (!cdev)
2436 return -ENODEV; 2436 return -ENODEV;
2437 2437
2438 rss = vzalloc(sizeof(*rss) * cdev->num_hwfns); 2438 rss = vzalloc(array_size(sizeof(*rss), cdev->num_hwfns));
2439 if (!rss) 2439 if (!rss)
2440 return -ENOMEM; 2440 return -ENOMEM;
2441 2441
diff --git a/drivers/net/ethernet/qlogic/qed/qed_mcp.c b/drivers/net/ethernet/qlogic/qed/qed_mcp.c
index 6f9927d1a501..4e0b443c9519 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_mcp.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_mcp.c
@@ -2578,9 +2578,9 @@ int qed_mcp_nvm_info_populate(struct qed_hwfn *p_hwfn)
2578 goto err0; 2578 goto err0;
2579 } 2579 }
2580 2580
2581 nvm_info->image_att = kmalloc(nvm_info->num_images * 2581 nvm_info->image_att = kmalloc_array(nvm_info->num_images,
2582 sizeof(struct bist_nvm_image_att), 2582 sizeof(struct bist_nvm_image_att),
2583 GFP_KERNEL); 2583 GFP_KERNEL);
2584 if (!nvm_info->image_att) { 2584 if (!nvm_info->image_att) {
2585 rc = -ENOMEM; 2585 rc = -ENOMEM;
2586 goto err0; 2586 goto err0;
diff --git a/drivers/net/ethernet/qlogic/qede/qede_filter.c b/drivers/net/ethernet/qlogic/qede/qede_filter.c
index e9e088d9c815..b823bfe2ea4d 100644
--- a/drivers/net/ethernet/qlogic/qede/qede_filter.c
+++ b/drivers/net/ethernet/qlogic/qede/qede_filter.c
@@ -342,8 +342,9 @@ int qede_alloc_arfs(struct qede_dev *edev)
342 for (i = 0; i <= QEDE_RFS_FLW_MASK; i++) 342 for (i = 0; i <= QEDE_RFS_FLW_MASK; i++)
343 INIT_HLIST_HEAD(QEDE_ARFS_BUCKET_HEAD(edev, i)); 343 INIT_HLIST_HEAD(QEDE_ARFS_BUCKET_HEAD(edev, i));
344 344
345 edev->arfs->arfs_fltr_bmap = vzalloc(BITS_TO_LONGS(QEDE_RFS_MAX_FLTR) * 345 edev->arfs->arfs_fltr_bmap =
346 sizeof(long)); 346 vzalloc(array_size(sizeof(long),
347 BITS_TO_LONGS(QEDE_RFS_MAX_FLTR)));
347 if (!edev->arfs->arfs_fltr_bmap) { 348 if (!edev->arfs->arfs_fltr_bmap) {
348 vfree(edev->arfs); 349 vfree(edev->arfs);
349 edev->arfs = NULL; 350 edev->arfs = NULL;
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
index 97c146e7698a..569d54ededec 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
@@ -386,8 +386,9 @@ int qlcnic_83xx_setup_intr(struct qlcnic_adapter *adapter)
386 } 386 }
387 387
388 /* setup interrupt mapping table for fw */ 388 /* setup interrupt mapping table for fw */
389 ahw->intr_tbl = vzalloc(num_msix * 389 ahw->intr_tbl =
390 sizeof(struct qlcnic_intrpt_config)); 390 vzalloc(array_size(num_msix,
391 sizeof(struct qlcnic_intrpt_config)));
391 if (!ahw->intr_tbl) 392 if (!ahw->intr_tbl)
392 return -ENOMEM; 393 return -ENOMEM;
393 394
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
index 1b5f7d57b6f8..2d38d1ac2aae 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
@@ -916,8 +916,9 @@ int qlcnic_82xx_mq_intrpt(struct qlcnic_adapter *adapter, int op_type)
916 if (qlcnic_check_multi_tx(adapter) && 916 if (qlcnic_check_multi_tx(adapter) &&
917 !ahw->diag_test && 917 !ahw->diag_test &&
918 (adapter->flags & QLCNIC_MSIX_ENABLED)) { 918 (adapter->flags & QLCNIC_MSIX_ENABLED)) {
919 ahw->intr_tbl = vzalloc(ahw->num_msix * 919 ahw->intr_tbl =
920 sizeof(struct qlcnic_intrpt_config)); 920 vzalloc(array_size(sizeof(struct qlcnic_intrpt_config),
921 ahw->num_msix));
921 if (!ahw->intr_tbl) 922 if (!ahw->intr_tbl)
922 return -ENOMEM; 923 return -ENOMEM;
923 924
@@ -1025,15 +1026,17 @@ int qlcnic_init_pci_info(struct qlcnic_adapter *adapter)
1025 1026
1026 act_pci_func = ahw->total_nic_func; 1027 act_pci_func = ahw->total_nic_func;
1027 1028
1028 adapter->npars = kzalloc(sizeof(struct qlcnic_npar_info) * 1029 adapter->npars = kcalloc(act_pci_func,
1029 act_pci_func, GFP_KERNEL); 1030 sizeof(struct qlcnic_npar_info),
1031 GFP_KERNEL);
1030 if (!adapter->npars) { 1032 if (!adapter->npars) {
1031 ret = -ENOMEM; 1033 ret = -ENOMEM;
1032 goto err_pci_info; 1034 goto err_pci_info;
1033 } 1035 }
1034 1036
1035 adapter->eswitch = kzalloc(sizeof(struct qlcnic_eswitch) * 1037 adapter->eswitch = kcalloc(QLCNIC_NIU_MAX_XG_PORTS,
1036 QLCNIC_NIU_MAX_XG_PORTS, GFP_KERNEL); 1038 sizeof(struct qlcnic_eswitch),
1039 GFP_KERNEL);
1037 if (!adapter->eswitch) { 1040 if (!adapter->eswitch) {
1038 ret = -ENOMEM; 1041 ret = -ENOMEM;
1039 goto err_npars; 1042 goto err_npars;
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c
index c58180f40844..0c744b9c6e0a 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c
@@ -157,8 +157,8 @@ int qlcnic_sriov_init(struct qlcnic_adapter *adapter, int num_vfs)
157 adapter->ahw->sriov = sriov; 157 adapter->ahw->sriov = sriov;
158 sriov->num_vfs = num_vfs; 158 sriov->num_vfs = num_vfs;
159 bc = &sriov->bc; 159 bc = &sriov->bc;
160 sriov->vf_info = kzalloc(sizeof(struct qlcnic_vf_info) * 160 sriov->vf_info = kcalloc(num_vfs, sizeof(struct qlcnic_vf_info),
161 num_vfs, GFP_KERNEL); 161 GFP_KERNEL);
162 if (!sriov->vf_info) { 162 if (!sriov->vf_info) {
163 err = -ENOMEM; 163 err = -ENOMEM;
164 goto qlcnic_free_sriov; 164 goto qlcnic_free_sriov;
@@ -450,7 +450,7 @@ static int qlcnic_sriov_set_guest_vlan_mode(struct qlcnic_adapter *adapter,
450 return 0; 450 return 0;
451 451
452 num_vlans = sriov->num_allowed_vlans; 452 num_vlans = sriov->num_allowed_vlans;
453 sriov->allowed_vlans = kzalloc(sizeof(u16) * num_vlans, GFP_KERNEL); 453 sriov->allowed_vlans = kcalloc(num_vlans, sizeof(u16), GFP_KERNEL);
454 if (!sriov->allowed_vlans) 454 if (!sriov->allowed_vlans)
455 return -ENOMEM; 455 return -ENOMEM;
456 456
@@ -706,7 +706,7 @@ static inline int qlcnic_sriov_alloc_bc_trans(struct qlcnic_bc_trans **trans)
706static inline int qlcnic_sriov_alloc_bc_msg(struct qlcnic_bc_hdr **hdr, 706static inline int qlcnic_sriov_alloc_bc_msg(struct qlcnic_bc_hdr **hdr,
707 u32 size) 707 u32 size)
708{ 708{
709 *hdr = kzalloc(sizeof(struct qlcnic_bc_hdr) * size, GFP_ATOMIC); 709 *hdr = kcalloc(size, sizeof(struct qlcnic_bc_hdr), GFP_ATOMIC);
710 if (!*hdr) 710 if (!*hdr)
711 return -ENOMEM; 711 return -ENOMEM;
712 712
diff --git a/drivers/net/ethernet/qlogic/qlge/qlge_main.c b/drivers/net/ethernet/qlogic/qlge/qlge_main.c
index 70de062b72a1..353f1c129af1 100644
--- a/drivers/net/ethernet/qlogic/qlge/qlge_main.c
+++ b/drivers/net/ethernet/qlogic/qlge/qlge_main.c
@@ -2810,7 +2810,8 @@ static int ql_alloc_tx_resources(struct ql_adapter *qdev,
2810 goto pci_alloc_err; 2810 goto pci_alloc_err;
2811 2811
2812 tx_ring->q = 2812 tx_ring->q =
2813 kmalloc(tx_ring->wq_len * sizeof(struct tx_ring_desc), GFP_KERNEL); 2813 kmalloc_array(tx_ring->wq_len, sizeof(struct tx_ring_desc),
2814 GFP_KERNEL);
2814 if (tx_ring->q == NULL) 2815 if (tx_ring->q == NULL)
2815 goto err; 2816 goto err;
2816 2817
diff --git a/drivers/net/ethernet/sfc/ef10.c b/drivers/net/ethernet/sfc/ef10.c
index d90a7b1f4088..23f0785c0573 100644
--- a/drivers/net/ethernet/sfc/ef10.c
+++ b/drivers/net/ethernet/sfc/ef10.c
@@ -4984,7 +4984,8 @@ static int efx_ef10_filter_table_probe(struct efx_nic *efx)
4984 net_dev->hw_features &= ~NETIF_F_HW_VLAN_CTAG_FILTER; 4984 net_dev->hw_features &= ~NETIF_F_HW_VLAN_CTAG_FILTER;
4985 } 4985 }
4986 4986
4987 table->entry = vzalloc(HUNT_FILTER_TBL_ROWS * sizeof(*table->entry)); 4987 table->entry = vzalloc(array_size(HUNT_FILTER_TBL_ROWS,
4988 sizeof(*table->entry)));
4988 if (!table->entry) { 4989 if (!table->entry) {
4989 rc = -ENOMEM; 4990 rc = -ENOMEM;
4990 goto fail; 4991 goto fail;
diff --git a/drivers/net/ethernet/sfc/falcon/farch.c b/drivers/net/ethernet/sfc/falcon/farch.c
index 494884f6af4a..411a2f419447 100644
--- a/drivers/net/ethernet/sfc/falcon/farch.c
+++ b/drivers/net/ethernet/sfc/falcon/farch.c
@@ -2755,7 +2755,8 @@ int ef4_farch_filter_table_probe(struct ef4_nic *efx)
2755 GFP_KERNEL); 2755 GFP_KERNEL);
2756 if (!table->used_bitmap) 2756 if (!table->used_bitmap)
2757 goto fail; 2757 goto fail;
2758 table->spec = vzalloc(table->size * sizeof(*table->spec)); 2758 table->spec = vzalloc(array_size(sizeof(*table->spec),
2759 table->size));
2759 if (!table->spec) 2760 if (!table->spec)
2760 goto fail; 2761 goto fail;
2761 } 2762 }
diff --git a/drivers/net/ethernet/sfc/farch.c b/drivers/net/ethernet/sfc/farch.c
index c72adf8b52ea..8edf20967c82 100644
--- a/drivers/net/ethernet/sfc/farch.c
+++ b/drivers/net/ethernet/sfc/farch.c
@@ -2826,7 +2826,8 @@ int efx_farch_filter_table_probe(struct efx_nic *efx)
2826 GFP_KERNEL); 2826 GFP_KERNEL);
2827 if (!table->used_bitmap) 2827 if (!table->used_bitmap)
2828 goto fail; 2828 goto fail;
2829 table->spec = vzalloc(table->size * sizeof(*table->spec)); 2829 table->spec = vzalloc(array_size(sizeof(*table->spec),
2830 table->size));
2830 if (!table->spec) 2831 if (!table->spec)
2831 goto fail; 2832 goto fail;
2832 } 2833 }
diff --git a/drivers/net/ethernet/socionext/netsec.c b/drivers/net/ethernet/socionext/netsec.c
index ce8071fc90c4..e080d3e7c582 100644
--- a/drivers/net/ethernet/socionext/netsec.c
+++ b/drivers/net/ethernet/socionext/netsec.c
@@ -973,7 +973,7 @@ static int netsec_alloc_dring(struct netsec_priv *priv, enum ring_id id)
973 goto err; 973 goto err;
974 } 974 }
975 975
976 dring->desc = kzalloc(DESC_NUM * sizeof(*dring->desc), GFP_KERNEL); 976 dring->desc = kcalloc(DESC_NUM, sizeof(*dring->desc), GFP_KERNEL);
977 if (!dring->desc) { 977 if (!dring->desc) {
978 ret = -ENOMEM; 978 ret = -ENOMEM;
979 goto err; 979 goto err;
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c
index 881c94b73e2f..2258cd8cc844 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c
@@ -277,8 +277,8 @@ static int tc_init(struct stmmac_priv *priv)
277 277
278 /* Reserve one last filter which lets all pass */ 278 /* Reserve one last filter which lets all pass */
279 priv->tc_entries_max = count; 279 priv->tc_entries_max = count;
280 priv->tc_entries = devm_kzalloc(priv->device, 280 priv->tc_entries = devm_kcalloc(priv->device,
281 sizeof(*priv->tc_entries) * count, GFP_KERNEL); 281 count, sizeof(*priv->tc_entries), GFP_KERNEL);
282 if (!priv->tc_entries) 282 if (!priv->tc_entries)
283 return -ENOMEM; 283 return -ENOMEM;
284 284
diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c
index 534596ce00d3..358edab9e72e 100644
--- a/drivers/net/ethernet/ti/cpsw.c
+++ b/drivers/net/ethernet/ti/cpsw.c
@@ -2740,8 +2740,9 @@ static int cpsw_probe_dt(struct cpsw_platform_data *data,
2740 } 2740 }
2741 data->active_slave = prop; 2741 data->active_slave = prop;
2742 2742
2743 data->slave_data = devm_kzalloc(&pdev->dev, data->slaves 2743 data->slave_data = devm_kcalloc(&pdev->dev,
2744 * sizeof(struct cpsw_slave_data), 2744 data->slaves,
2745 sizeof(struct cpsw_slave_data),
2745 GFP_KERNEL); 2746 GFP_KERNEL);
2746 if (!data->slave_data) 2747 if (!data->slave_data)
2747 return -ENOMEM; 2748 return -ENOMEM;
@@ -3045,8 +3046,8 @@ static int cpsw_probe(struct platform_device *pdev)
3045 3046
3046 memcpy(ndev->dev_addr, priv->mac_addr, ETH_ALEN); 3047 memcpy(ndev->dev_addr, priv->mac_addr, ETH_ALEN);
3047 3048
3048 cpsw->slaves = devm_kzalloc(&pdev->dev, 3049 cpsw->slaves = devm_kcalloc(&pdev->dev,
3049 sizeof(struct cpsw_slave) * data->slaves, 3050 data->slaves, sizeof(struct cpsw_slave),
3050 GFP_KERNEL); 3051 GFP_KERNEL);
3051 if (!cpsw->slaves) { 3052 if (!cpsw->slaves) {
3052 ret = -ENOMEM; 3053 ret = -ENOMEM;
diff --git a/drivers/net/ethernet/ti/netcp_ethss.c b/drivers/net/ethernet/ti/netcp_ethss.c
index 6e455a27a8de..72b98e27c992 100644
--- a/drivers/net/ethernet/ti/netcp_ethss.c
+++ b/drivers/net/ethernet/ti/netcp_ethss.c
@@ -3285,8 +3285,8 @@ static int set_xgbe_ethss10_priv(struct gbe_priv *gbe_dev,
3285 gbe_dev->et_stats = xgbe10_et_stats; 3285 gbe_dev->et_stats = xgbe10_et_stats;
3286 gbe_dev->num_et_stats = ARRAY_SIZE(xgbe10_et_stats); 3286 gbe_dev->num_et_stats = ARRAY_SIZE(xgbe10_et_stats);
3287 3287
3288 gbe_dev->hw_stats = devm_kzalloc(gbe_dev->dev, 3288 gbe_dev->hw_stats = devm_kcalloc(gbe_dev->dev,
3289 gbe_dev->num_et_stats * sizeof(u64), 3289 gbe_dev->num_et_stats, sizeof(u64),
3290 GFP_KERNEL); 3290 GFP_KERNEL);
3291 if (!gbe_dev->hw_stats) { 3291 if (!gbe_dev->hw_stats) {
3292 dev_err(gbe_dev->dev, "hw_stats memory allocation failed\n"); 3292 dev_err(gbe_dev->dev, "hw_stats memory allocation failed\n");
@@ -3294,8 +3294,8 @@ static int set_xgbe_ethss10_priv(struct gbe_priv *gbe_dev,
3294 } 3294 }
3295 3295
3296 gbe_dev->hw_stats_prev = 3296 gbe_dev->hw_stats_prev =
3297 devm_kzalloc(gbe_dev->dev, 3297 devm_kcalloc(gbe_dev->dev,
3298 gbe_dev->num_et_stats * sizeof(u32), 3298 gbe_dev->num_et_stats, sizeof(u32),
3299 GFP_KERNEL); 3299 GFP_KERNEL);
3300 if (!gbe_dev->hw_stats_prev) { 3300 if (!gbe_dev->hw_stats_prev) {
3301 dev_err(gbe_dev->dev, 3301 dev_err(gbe_dev->dev,
@@ -3405,8 +3405,8 @@ static int set_gbe_ethss14_priv(struct gbe_priv *gbe_dev,
3405 gbe_dev->et_stats = gbe13_et_stats; 3405 gbe_dev->et_stats = gbe13_et_stats;
3406 gbe_dev->num_et_stats = ARRAY_SIZE(gbe13_et_stats); 3406 gbe_dev->num_et_stats = ARRAY_SIZE(gbe13_et_stats);
3407 3407
3408 gbe_dev->hw_stats = devm_kzalloc(gbe_dev->dev, 3408 gbe_dev->hw_stats = devm_kcalloc(gbe_dev->dev,
3409 gbe_dev->num_et_stats * sizeof(u64), 3409 gbe_dev->num_et_stats, sizeof(u64),
3410 GFP_KERNEL); 3410 GFP_KERNEL);
3411 if (!gbe_dev->hw_stats) { 3411 if (!gbe_dev->hw_stats) {
3412 dev_err(gbe_dev->dev, "hw_stats memory allocation failed\n"); 3412 dev_err(gbe_dev->dev, "hw_stats memory allocation failed\n");
@@ -3414,8 +3414,8 @@ static int set_gbe_ethss14_priv(struct gbe_priv *gbe_dev,
3414 } 3414 }
3415 3415
3416 gbe_dev->hw_stats_prev = 3416 gbe_dev->hw_stats_prev =
3417 devm_kzalloc(gbe_dev->dev, 3417 devm_kcalloc(gbe_dev->dev,
3418 gbe_dev->num_et_stats * sizeof(u32), 3418 gbe_dev->num_et_stats, sizeof(u32),
3419 GFP_KERNEL); 3419 GFP_KERNEL);
3420 if (!gbe_dev->hw_stats_prev) { 3420 if (!gbe_dev->hw_stats_prev) {
3421 dev_err(gbe_dev->dev, 3421 dev_err(gbe_dev->dev,
@@ -3477,8 +3477,8 @@ static int set_gbenu_ethss_priv(struct gbe_priv *gbe_dev,
3477 gbe_dev->num_et_stats = GBENU_ET_STATS_HOST_SIZE + 3477 gbe_dev->num_et_stats = GBENU_ET_STATS_HOST_SIZE +
3478 GBENU_ET_STATS_PORT_SIZE; 3478 GBENU_ET_STATS_PORT_SIZE;
3479 3479
3480 gbe_dev->hw_stats = devm_kzalloc(gbe_dev->dev, 3480 gbe_dev->hw_stats = devm_kcalloc(gbe_dev->dev,
3481 gbe_dev->num_et_stats * sizeof(u64), 3481 gbe_dev->num_et_stats, sizeof(u64),
3482 GFP_KERNEL); 3482 GFP_KERNEL);
3483 if (!gbe_dev->hw_stats) { 3483 if (!gbe_dev->hw_stats) {
3484 dev_err(gbe_dev->dev, "hw_stats memory allocation failed\n"); 3484 dev_err(gbe_dev->dev, "hw_stats memory allocation failed\n");
@@ -3486,8 +3486,8 @@ static int set_gbenu_ethss_priv(struct gbe_priv *gbe_dev,
3486 } 3486 }
3487 3487
3488 gbe_dev->hw_stats_prev = 3488 gbe_dev->hw_stats_prev =
3489 devm_kzalloc(gbe_dev->dev, 3489 devm_kcalloc(gbe_dev->dev,
3490 gbe_dev->num_et_stats * sizeof(u32), 3490 gbe_dev->num_et_stats, sizeof(u32),
3491 GFP_KERNEL); 3491 GFP_KERNEL);
3492 if (!gbe_dev->hw_stats_prev) { 3492 if (!gbe_dev->hw_stats_prev) {
3493 dev_err(gbe_dev->dev, 3493 dev_err(gbe_dev->dev,
diff --git a/drivers/net/ethernet/toshiba/ps3_gelic_wireless.c b/drivers/net/ethernet/toshiba/ps3_gelic_wireless.c
index eed18f88bdff..302079e22b06 100644
--- a/drivers/net/ethernet/toshiba/ps3_gelic_wireless.c
+++ b/drivers/net/ethernet/toshiba/ps3_gelic_wireless.c
@@ -2320,8 +2320,9 @@ static struct net_device *gelic_wl_alloc(struct gelic_card *card)
2320 pr_debug("%s: wl=%p port=%p\n", __func__, wl, port); 2320 pr_debug("%s: wl=%p port=%p\n", __func__, wl, port);
2321 2321
2322 /* allocate scan list */ 2322 /* allocate scan list */
2323 wl->networks = kzalloc(sizeof(struct gelic_wl_scan_info) * 2323 wl->networks = kcalloc(GELIC_WL_BSS_MAX_ENT,
2324 GELIC_WL_BSS_MAX_ENT, GFP_KERNEL); 2324 sizeof(struct gelic_wl_scan_info),
2325 GFP_KERNEL);
2325 2326
2326 if (!wl->networks) 2327 if (!wl->networks)
2327 goto fail_bss; 2328 goto fail_bss;
diff --git a/drivers/net/gtp.c b/drivers/net/gtp.c
index f38e32a7ec9c..ec629a730005 100644
--- a/drivers/net/gtp.c
+++ b/drivers/net/gtp.c
@@ -742,11 +742,13 @@ static int gtp_hashtable_new(struct gtp_dev *gtp, int hsize)
742{ 742{
743 int i; 743 int i;
744 744
745 gtp->addr_hash = kmalloc(sizeof(struct hlist_head) * hsize, GFP_KERNEL); 745 gtp->addr_hash = kmalloc_array(hsize, sizeof(struct hlist_head),
746 GFP_KERNEL);
746 if (gtp->addr_hash == NULL) 747 if (gtp->addr_hash == NULL)
747 return -ENOMEM; 748 return -ENOMEM;
748 749
749 gtp->tid_hash = kmalloc(sizeof(struct hlist_head) * hsize, GFP_KERNEL); 750 gtp->tid_hash = kmalloc_array(hsize, sizeof(struct hlist_head),
751 GFP_KERNEL);
750 if (gtp->tid_hash == NULL) 752 if (gtp->tid_hash == NULL)
751 goto err1; 753 goto err1;
752 754
diff --git a/drivers/net/hippi/rrunner.c b/drivers/net/hippi/rrunner.c
index f41116488079..029206e4da3b 100644
--- a/drivers/net/hippi/rrunner.c
+++ b/drivers/net/hippi/rrunner.c
@@ -1583,7 +1583,7 @@ static int rr_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
1583 return -EPERM; 1583 return -EPERM;
1584 } 1584 }
1585 1585
1586 image = kmalloc(EEPROM_WORDS * sizeof(u32), GFP_KERNEL); 1586 image = kmalloc_array(EEPROM_WORDS, sizeof(u32), GFP_KERNEL);
1587 if (!image) 1587 if (!image)
1588 return -ENOMEM; 1588 return -ENOMEM;
1589 1589
diff --git a/drivers/net/phy/dp83640.c b/drivers/net/phy/dp83640.c
index a6c87793d899..79e9b103188b 100644
--- a/drivers/net/phy/dp83640.c
+++ b/drivers/net/phy/dp83640.c
@@ -1097,8 +1097,9 @@ static struct dp83640_clock *dp83640_clock_get_bus(struct mii_bus *bus)
1097 if (!clock) 1097 if (!clock)
1098 goto out; 1098 goto out;
1099 1099
1100 clock->caps.pin_config = kzalloc(sizeof(struct ptp_pin_desc) * 1100 clock->caps.pin_config = kcalloc(DP83640_N_PINS,
1101 DP83640_N_PINS, GFP_KERNEL); 1101 sizeof(struct ptp_pin_desc),
1102 GFP_KERNEL);
1102 if (!clock->caps.pin_config) { 1103 if (!clock->caps.pin_config) {
1103 kfree(clock); 1104 kfree(clock);
1104 clock = NULL; 1105 clock = NULL;
diff --git a/drivers/net/phy/phy_led_triggers.c b/drivers/net/phy/phy_led_triggers.c
index 39ecad25b201..491efc1bf5c4 100644
--- a/drivers/net/phy/phy_led_triggers.c
+++ b/drivers/net/phy/phy_led_triggers.c
@@ -128,9 +128,9 @@ int phy_led_triggers_register(struct phy_device *phy)
128 if (err) 128 if (err)
129 goto out_free_link; 129 goto out_free_link;
130 130
131 phy->phy_led_triggers = devm_kzalloc(&phy->mdio.dev, 131 phy->phy_led_triggers = devm_kcalloc(&phy->mdio.dev,
132 sizeof(struct phy_led_trigger) * 132 phy->phy_num_led_triggers,
133 phy->phy_num_led_triggers, 133 sizeof(struct phy_led_trigger),
134 GFP_KERNEL); 134 GFP_KERNEL);
135 if (!phy->phy_led_triggers) { 135 if (!phy->phy_led_triggers) {
136 err = -ENOMEM; 136 err = -ENOMEM;
diff --git a/drivers/net/ppp/bsd_comp.c b/drivers/net/ppp/bsd_comp.c
index a9b759add187..61fedb23d3cf 100644
--- a/drivers/net/ppp/bsd_comp.c
+++ b/drivers/net/ppp/bsd_comp.c
@@ -406,7 +406,7 @@ static void *bsd_alloc (unsigned char *options, int opt_len, int decomp)
406 * Allocate space for the dictionary. This may be more than one page in 406 * Allocate space for the dictionary. This may be more than one page in
407 * length. 407 * length.
408 */ 408 */
409 db->dict = vmalloc(hsize * sizeof(struct bsd_dict)); 409 db->dict = vmalloc(array_size(hsize, sizeof(struct bsd_dict)));
410 if (!db->dict) 410 if (!db->dict)
411 { 411 {
412 bsd_free (db); 412 bsd_free (db);
@@ -425,7 +425,7 @@ static void *bsd_alloc (unsigned char *options, int opt_len, int decomp)
425 */ 425 */
426 else 426 else
427 { 427 {
428 db->lens = vmalloc((maxmaxcode + 1) * sizeof(db->lens[0])); 428 db->lens = vmalloc(array_size(sizeof(db->lens[0]), (maxmaxcode + 1)));
429 if (!db->lens) 429 if (!db->lens)
430 { 430 {
431 bsd_free (db); 431 bsd_free (db);
diff --git a/drivers/net/ppp/pptp.c b/drivers/net/ppp/pptp.c
index 157b67c1bf8e..67ffe74747a1 100644
--- a/drivers/net/ppp/pptp.c
+++ b/drivers/net/ppp/pptp.c
@@ -648,7 +648,7 @@ static int __init pptp_init_module(void)
648 int err = 0; 648 int err = 0;
649 pr_info("PPTP driver version " PPTP_DRIVER_VERSION "\n"); 649 pr_info("PPTP driver version " PPTP_DRIVER_VERSION "\n");
650 650
651 callid_sock = vzalloc((MAX_CALLID + 1) * sizeof(void *)); 651 callid_sock = vzalloc(array_size(sizeof(void *), (MAX_CALLID + 1)));
652 if (!callid_sock) 652 if (!callid_sock)
653 return -ENOMEM; 653 return -ENOMEM;
654 654
diff --git a/drivers/net/slip/slip.c b/drivers/net/slip/slip.c
index 8940417c30e5..b008266e91ea 100644
--- a/drivers/net/slip/slip.c
+++ b/drivers/net/slip/slip.c
@@ -1307,7 +1307,7 @@ static int __init slip_init(void)
1307 printk(KERN_INFO "SLIP linefill/keepalive option.\n"); 1307 printk(KERN_INFO "SLIP linefill/keepalive option.\n");
1308#endif 1308#endif
1309 1309
1310 slip_devs = kzalloc(sizeof(struct net_device *)*slip_maxdev, 1310 slip_devs = kcalloc(slip_maxdev, sizeof(struct net_device *),
1311 GFP_KERNEL); 1311 GFP_KERNEL);
1312 if (!slip_devs) 1312 if (!slip_devs)
1313 return -ENOMEM; 1313 return -ENOMEM;
diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c
index 8863fa023500..b070959737ff 100644
--- a/drivers/net/team/team.c
+++ b/drivers/net/team/team.c
@@ -280,7 +280,7 @@ static int __team_options_register(struct team *team,
280 struct team_option **dst_opts; 280 struct team_option **dst_opts;
281 int err; 281 int err;
282 282
283 dst_opts = kzalloc(sizeof(struct team_option *) * option_count, 283 dst_opts = kcalloc(option_count, sizeof(struct team_option *),
284 GFP_KERNEL); 284 GFP_KERNEL);
285 if (!dst_opts) 285 if (!dst_opts)
286 return -ENOMEM; 286 return -ENOMEM;
@@ -791,7 +791,8 @@ static int team_queue_override_init(struct team *team)
791 791
792 if (!queue_cnt) 792 if (!queue_cnt)
793 return 0; 793 return 0;
794 listarr = kmalloc(sizeof(struct list_head) * queue_cnt, GFP_KERNEL); 794 listarr = kmalloc_array(queue_cnt, sizeof(struct list_head),
795 GFP_KERNEL);
795 if (!listarr) 796 if (!listarr)
796 return -ENOMEM; 797 return -ENOMEM;
797 team->qom_lists = listarr; 798 team->qom_lists = listarr;
diff --git a/drivers/net/usb/asix_common.c b/drivers/net/usb/asix_common.c
index f4d7362eb325..e95dd12edec4 100644
--- a/drivers/net/usb/asix_common.c
+++ b/drivers/net/usb/asix_common.c
@@ -640,8 +640,8 @@ int asix_get_eeprom(struct net_device *net, struct ethtool_eeprom *eeprom,
640 first_word = eeprom->offset >> 1; 640 first_word = eeprom->offset >> 1;
641 last_word = (eeprom->offset + eeprom->len - 1) >> 1; 641 last_word = (eeprom->offset + eeprom->len - 1) >> 1;
642 642
643 eeprom_buff = kmalloc(sizeof(u16) * (last_word - first_word + 1), 643 eeprom_buff = kmalloc_array(last_word - first_word + 1, sizeof(u16),
644 GFP_KERNEL); 644 GFP_KERNEL);
645 if (!eeprom_buff) 645 if (!eeprom_buff)
646 return -ENOMEM; 646 return -ENOMEM;
647 647
@@ -680,8 +680,8 @@ int asix_set_eeprom(struct net_device *net, struct ethtool_eeprom *eeprom,
680 first_word = eeprom->offset >> 1; 680 first_word = eeprom->offset >> 1;
681 last_word = (eeprom->offset + eeprom->len - 1) >> 1; 681 last_word = (eeprom->offset + eeprom->len - 1) >> 1;
682 682
683 eeprom_buff = kmalloc(sizeof(u16) * (last_word - first_word + 1), 683 eeprom_buff = kmalloc_array(last_word - first_word + 1, sizeof(u16),
684 GFP_KERNEL); 684 GFP_KERNEL);
685 if (!eeprom_buff) 685 if (!eeprom_buff)
686 return -ENOMEM; 686 return -ENOMEM;
687 687
diff --git a/drivers/net/usb/ax88179_178a.c b/drivers/net/usb/ax88179_178a.c
index a6ef75907ae9..9e8ad372f419 100644
--- a/drivers/net/usb/ax88179_178a.c
+++ b/drivers/net/usb/ax88179_178a.c
@@ -599,8 +599,8 @@ ax88179_get_eeprom(struct net_device *net, struct ethtool_eeprom *eeprom,
599 599
600 first_word = eeprom->offset >> 1; 600 first_word = eeprom->offset >> 1;
601 last_word = (eeprom->offset + eeprom->len - 1) >> 1; 601 last_word = (eeprom->offset + eeprom->len - 1) >> 1;
602 eeprom_buff = kmalloc(sizeof(u16) * (last_word - first_word + 1), 602 eeprom_buff = kmalloc_array(last_word - first_word + 1, sizeof(u16),
603 GFP_KERNEL); 603 GFP_KERNEL);
604 if (!eeprom_buff) 604 if (!eeprom_buff)
605 return -ENOMEM; 605 return -ENOMEM;
606 606
diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c
index 309b88acd3d0..06b4d290784d 100644
--- a/drivers/net/usb/smsc95xx.c
+++ b/drivers/net/usb/smsc95xx.c
@@ -1661,7 +1661,7 @@ static int smsc95xx_suspend(struct usb_interface *intf, pm_message_t message)
1661 } 1661 }
1662 1662
1663 if (pdata->wolopts & (WAKE_BCAST | WAKE_MCAST | WAKE_ARP | WAKE_UCAST)) { 1663 if (pdata->wolopts & (WAKE_BCAST | WAKE_MCAST | WAKE_ARP | WAKE_UCAST)) {
1664 u32 *filter_mask = kzalloc(sizeof(u32) * 32, GFP_KERNEL); 1664 u32 *filter_mask = kcalloc(32, sizeof(u32), GFP_KERNEL);
1665 u32 command[2]; 1665 u32 command[2];
1666 u32 offset[2]; 1666 u32 offset[2];
1667 u32 crc[4]; 1667 u32 crc[4];
diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c
index d9eea8cfe6cb..770aa624147f 100644
--- a/drivers/net/usb/usbnet.c
+++ b/drivers/net/usb/usbnet.c
@@ -1323,8 +1323,8 @@ static int build_dma_sg(const struct sk_buff *skb, struct urb *urb)
1323 return 0; 1323 return 0;
1324 1324
1325 /* reserve one for zero packet */ 1325 /* reserve one for zero packet */
1326 urb->sg = kmalloc((num_sgs + 1) * sizeof(struct scatterlist), 1326 urb->sg = kmalloc_array(num_sgs + 1, sizeof(struct scatterlist),
1327 GFP_ATOMIC); 1327 GFP_ATOMIC);
1328 if (!urb->sg) 1328 if (!urb->sg)
1329 return -ENOMEM; 1329 return -ENOMEM;
1330 1330
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index 1619ee3070b6..b6c9a2af3732 100644
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -2552,17 +2552,17 @@ static int virtnet_find_vqs(struct virtnet_info *vi)
2552 virtio_has_feature(vi->vdev, VIRTIO_NET_F_CTRL_VQ); 2552 virtio_has_feature(vi->vdev, VIRTIO_NET_F_CTRL_VQ);
2553 2553
2554 /* Allocate space for find_vqs parameters */ 2554 /* Allocate space for find_vqs parameters */
2555 vqs = kzalloc(total_vqs * sizeof(*vqs), GFP_KERNEL); 2555 vqs = kcalloc(total_vqs, sizeof(*vqs), GFP_KERNEL);
2556 if (!vqs) 2556 if (!vqs)
2557 goto err_vq; 2557 goto err_vq;
2558 callbacks = kmalloc(total_vqs * sizeof(*callbacks), GFP_KERNEL); 2558 callbacks = kmalloc_array(total_vqs, sizeof(*callbacks), GFP_KERNEL);
2559 if (!callbacks) 2559 if (!callbacks)
2560 goto err_callback; 2560 goto err_callback;
2561 names = kmalloc(total_vqs * sizeof(*names), GFP_KERNEL); 2561 names = kmalloc_array(total_vqs, sizeof(*names), GFP_KERNEL);
2562 if (!names) 2562 if (!names)
2563 goto err_names; 2563 goto err_names;
2564 if (!vi->big_packets || vi->mergeable_rx_bufs) { 2564 if (!vi->big_packets || vi->mergeable_rx_bufs) {
2565 ctx = kzalloc(total_vqs * sizeof(*ctx), GFP_KERNEL); 2565 ctx = kcalloc(total_vqs, sizeof(*ctx), GFP_KERNEL);
2566 if (!ctx) 2566 if (!ctx)
2567 goto err_ctx; 2567 goto err_ctx;
2568 } else { 2568 } else {
@@ -2626,10 +2626,10 @@ static int virtnet_alloc_queues(struct virtnet_info *vi)
2626 vi->ctrl = kzalloc(sizeof(*vi->ctrl), GFP_KERNEL); 2626 vi->ctrl = kzalloc(sizeof(*vi->ctrl), GFP_KERNEL);
2627 if (!vi->ctrl) 2627 if (!vi->ctrl)
2628 goto err_ctrl; 2628 goto err_ctrl;
2629 vi->sq = kzalloc(sizeof(*vi->sq) * vi->max_queue_pairs, GFP_KERNEL); 2629 vi->sq = kcalloc(vi->max_queue_pairs, sizeof(*vi->sq), GFP_KERNEL);
2630 if (!vi->sq) 2630 if (!vi->sq)
2631 goto err_sq; 2631 goto err_sq;
2632 vi->rq = kzalloc(sizeof(*vi->rq) * vi->max_queue_pairs, GFP_KERNEL); 2632 vi->rq = kcalloc(vi->max_queue_pairs, sizeof(*vi->rq), GFP_KERNEL);
2633 if (!vi->rq) 2633 if (!vi->rq)
2634 goto err_rq; 2634 goto err_rq;
2635 2635
diff --git a/drivers/net/wan/fsl_ucc_hdlc.c b/drivers/net/wan/fsl_ucc_hdlc.c
index 4205dfd19da3..9b09c9d0d0fb 100644
--- a/drivers/net/wan/fsl_ucc_hdlc.c
+++ b/drivers/net/wan/fsl_ucc_hdlc.c
@@ -198,12 +198,14 @@ static int uhdlc_init(struct ucc_hdlc_private *priv)
198 goto free_tx_bd; 198 goto free_tx_bd;
199 } 199 }
200 200
201 priv->rx_skbuff = kzalloc(priv->rx_ring_size * sizeof(*priv->rx_skbuff), 201 priv->rx_skbuff = kcalloc(priv->rx_ring_size,
202 sizeof(*priv->rx_skbuff),
202 GFP_KERNEL); 203 GFP_KERNEL);
203 if (!priv->rx_skbuff) 204 if (!priv->rx_skbuff)
204 goto free_ucc_pram; 205 goto free_ucc_pram;
205 206
206 priv->tx_skbuff = kzalloc(priv->tx_ring_size * sizeof(*priv->tx_skbuff), 207 priv->tx_skbuff = kcalloc(priv->tx_ring_size,
208 sizeof(*priv->tx_skbuff),
207 GFP_KERNEL); 209 GFP_KERNEL);
208 if (!priv->tx_skbuff) 210 if (!priv->tx_skbuff)
209 goto free_rx_skbuff; 211 goto free_rx_skbuff;
diff --git a/drivers/net/wireless/ath/ath10k/htt_rx.c b/drivers/net/wireless/ath/ath10k/htt_rx.c
index bd23f6940488..c72d8af122a2 100644
--- a/drivers/net/wireless/ath/ath10k/htt_rx.c
+++ b/drivers/net/wireless/ath/ath10k/htt_rx.c
@@ -582,7 +582,7 @@ int ath10k_htt_rx_alloc(struct ath10k_htt *htt)
582 } 582 }
583 583
584 htt->rx_ring.netbufs_ring = 584 htt->rx_ring.netbufs_ring =
585 kzalloc(htt->rx_ring.size * sizeof(struct sk_buff *), 585 kcalloc(htt->rx_ring.size, sizeof(struct sk_buff *),
586 GFP_KERNEL); 586 GFP_KERNEL);
587 if (!htt->rx_ring.netbufs_ring) 587 if (!htt->rx_ring.netbufs_ring)
588 goto err_netbuf; 588 goto err_netbuf;
diff --git a/drivers/net/wireless/ath/ath10k/wmi-tlv.c b/drivers/net/wireless/ath/ath10k/wmi-tlv.c
index 2e34a1fc5ba6..8c49a26fc571 100644
--- a/drivers/net/wireless/ath/ath10k/wmi-tlv.c
+++ b/drivers/net/wireless/ath/ath10k/wmi-tlv.c
@@ -155,7 +155,7 @@ ath10k_wmi_tlv_parse_alloc(struct ath10k *ar, const void *ptr,
155 const void **tb; 155 const void **tb;
156 int ret; 156 int ret;
157 157
158 tb = kzalloc(sizeof(*tb) * WMI_TLV_TAG_MAX, gfp); 158 tb = kcalloc(WMI_TLV_TAG_MAX, sizeof(*tb), gfp);
159 if (!tb) 159 if (!tb)
160 return ERR_PTR(-ENOMEM); 160 return ERR_PTR(-ENOMEM);
161 161
diff --git a/drivers/net/wireless/ath/ath5k/debug.c b/drivers/net/wireless/ath/ath5k/debug.c
index 3513bbec4639..e01faf641288 100644
--- a/drivers/net/wireless/ath/ath5k/debug.c
+++ b/drivers/net/wireless/ath/ath5k/debug.c
@@ -931,7 +931,7 @@ static int open_file_eeprom(struct inode *inode, struct file *file)
931 931
932 /* Create buffer and read in eeprom */ 932 /* Create buffer and read in eeprom */
933 933
934 buf = vmalloc(eesize * 2); 934 buf = vmalloc(array_size(eesize, 2));
935 if (!buf) { 935 if (!buf) {
936 ret = -ENOMEM; 936 ret = -ENOMEM;
937 goto err; 937 goto err;
diff --git a/drivers/net/wireless/ath/ath5k/phy.c b/drivers/net/wireless/ath/ath5k/phy.c
index 641b13a279e1..b1b8bc326830 100644
--- a/drivers/net/wireless/ath/ath5k/phy.c
+++ b/drivers/net/wireless/ath/ath5k/phy.c
@@ -890,7 +890,8 @@ ath5k_hw_rfregs_init(struct ath5k_hw *ah,
890 * ah->ah_rf_banks based on ah->ah_rf_banks_size 890 * ah->ah_rf_banks based on ah->ah_rf_banks_size
891 * we set above */ 891 * we set above */
892 if (ah->ah_rf_banks == NULL) { 892 if (ah->ah_rf_banks == NULL) {
893 ah->ah_rf_banks = kmalloc(sizeof(u32) * ah->ah_rf_banks_size, 893 ah->ah_rf_banks = kmalloc_array(ah->ah_rf_banks_size,
894 sizeof(u32),
894 GFP_KERNEL); 895 GFP_KERNEL);
895 if (ah->ah_rf_banks == NULL) { 896 if (ah->ah_rf_banks == NULL) {
896 ATH5K_ERR(ah, "out of memory\n"); 897 ATH5K_ERR(ah, "out of memory\n");
diff --git a/drivers/net/wireless/ath/ath6kl/cfg80211.c b/drivers/net/wireless/ath/ath6kl/cfg80211.c
index 2ba8cf3f38af..0687697d5e2d 100644
--- a/drivers/net/wireless/ath/ath6kl/cfg80211.c
+++ b/drivers/net/wireless/ath/ath6kl/cfg80211.c
@@ -1041,7 +1041,7 @@ static int ath6kl_cfg80211_scan(struct wiphy *wiphy,
1041 1041
1042 n_channels = request->n_channels; 1042 n_channels = request->n_channels;
1043 1043
1044 channels = kzalloc(n_channels * sizeof(u16), GFP_KERNEL); 1044 channels = kcalloc(n_channels, sizeof(u16), GFP_KERNEL);
1045 if (channels == NULL) { 1045 if (channels == NULL) {
1046 ath6kl_warn("failed to set scan channels, scan all channels"); 1046 ath6kl_warn("failed to set scan channels, scan all channels");
1047 n_channels = 0; 1047 n_channels = 0;
diff --git a/drivers/net/wireless/ath/ath9k/ar9003_paprd.c b/drivers/net/wireless/ath/ath9k/ar9003_paprd.c
index 6343cc91953e..34e100940284 100644
--- a/drivers/net/wireless/ath/ath9k/ar9003_paprd.c
+++ b/drivers/net/wireless/ath/ath9k/ar9003_paprd.c
@@ -925,7 +925,7 @@ int ar9003_paprd_create_curve(struct ath_hw *ah,
925 925
926 memset(caldata->pa_table[chain], 0, sizeof(caldata->pa_table[chain])); 926 memset(caldata->pa_table[chain], 0, sizeof(caldata->pa_table[chain]));
927 927
928 buf = kmalloc(2 * 48 * sizeof(u32), GFP_KERNEL); 928 buf = kmalloc_array(2 * 48, sizeof(u32), GFP_KERNEL);
929 if (!buf) 929 if (!buf)
930 return -ENOMEM; 930 return -ENOMEM;
931 931
diff --git a/drivers/net/wireless/ath/ath9k/hw.c b/drivers/net/wireless/ath/ath9k/hw.c
index 6b37036b2d36..e60bea4604e4 100644
--- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -127,13 +127,13 @@ void ath9k_hw_read_array(struct ath_hw *ah, u32 array[][2], int size)
127 u32 *tmp_reg_list, *tmp_data; 127 u32 *tmp_reg_list, *tmp_data;
128 int i; 128 int i;
129 129
130 tmp_reg_list = kmalloc(size * sizeof(u32), GFP_KERNEL); 130 tmp_reg_list = kmalloc_array(size, sizeof(u32), GFP_KERNEL);
131 if (!tmp_reg_list) { 131 if (!tmp_reg_list) {
132 dev_err(ah->dev, "%s: tmp_reg_list: alloc filed\n", __func__); 132 dev_err(ah->dev, "%s: tmp_reg_list: alloc filed\n", __func__);
133 return; 133 return;
134 } 134 }
135 135
136 tmp_data = kmalloc(size * sizeof(u32), GFP_KERNEL); 136 tmp_data = kmalloc_array(size, sizeof(u32), GFP_KERNEL);
137 if (!tmp_data) { 137 if (!tmp_data) {
138 dev_err(ah->dev, "%s tmp_data: alloc filed\n", __func__); 138 dev_err(ah->dev, "%s tmp_data: alloc filed\n", __func__);
139 goto error_tmp_data; 139 goto error_tmp_data;
diff --git a/drivers/net/wireless/ath/carl9170/main.c b/drivers/net/wireless/ath/carl9170/main.c
index 29e93c953d93..7f1bdea742b8 100644
--- a/drivers/net/wireless/ath/carl9170/main.c
+++ b/drivers/net/wireless/ath/carl9170/main.c
@@ -1958,7 +1958,7 @@ static int carl9170_parse_eeprom(struct ar9170 *ar)
1958 if (!bands) 1958 if (!bands)
1959 return -EINVAL; 1959 return -EINVAL;
1960 1960
1961 ar->survey = kzalloc(sizeof(struct survey_info) * chans, GFP_KERNEL); 1961 ar->survey = kcalloc(chans, sizeof(struct survey_info), GFP_KERNEL);
1962 if (!ar->survey) 1962 if (!ar->survey)
1963 return -ENOMEM; 1963 return -ENOMEM;
1964 ar->num_channels = chans; 1964 ar->num_channels = chans;
@@ -1988,8 +1988,9 @@ int carl9170_register(struct ar9170 *ar)
1988 if (WARN_ON(ar->mem_bitmap)) 1988 if (WARN_ON(ar->mem_bitmap))
1989 return -EINVAL; 1989 return -EINVAL;
1990 1990
1991 ar->mem_bitmap = kzalloc(roundup(ar->fw.mem_blocks, BITS_PER_LONG) * 1991 ar->mem_bitmap = kcalloc(roundup(ar->fw.mem_blocks, BITS_PER_LONG),
1992 sizeof(unsigned long), GFP_KERNEL); 1992 sizeof(unsigned long),
1993 GFP_KERNEL);
1993 1994
1994 if (!ar->mem_bitmap) 1995 if (!ar->mem_bitmap)
1995 return -ENOMEM; 1996 return -ENOMEM;
diff --git a/drivers/net/wireless/broadcom/b43/phy_n.c b/drivers/net/wireless/broadcom/b43/phy_n.c
index f2a2f41e3c96..44ab080d6518 100644
--- a/drivers/net/wireless/broadcom/b43/phy_n.c
+++ b/drivers/net/wireless/broadcom/b43/phy_n.c
@@ -1518,7 +1518,7 @@ static int b43_nphy_load_samples(struct b43_wldev *dev,
1518 u16 i; 1518 u16 i;
1519 u32 *data; 1519 u32 *data;
1520 1520
1521 data = kzalloc(len * sizeof(u32), GFP_KERNEL); 1521 data = kcalloc(len, sizeof(u32), GFP_KERNEL);
1522 if (!data) { 1522 if (!data) {
1523 b43err(dev->wl, "allocation for samples loading failed\n"); 1523 b43err(dev->wl, "allocation for samples loading failed\n");
1524 return -ENOMEM; 1524 return -ENOMEM;
diff --git a/drivers/net/wireless/broadcom/b43legacy/main.c b/drivers/net/wireless/broadcom/b43legacy/main.c
index f1e3dad57629..55f411925960 100644
--- a/drivers/net/wireless/broadcom/b43legacy/main.c
+++ b/drivers/net/wireless/broadcom/b43legacy/main.c
@@ -3300,8 +3300,8 @@ static int b43legacy_wireless_core_init(struct b43legacy_wldev *dev)
3300 3300
3301 if ((phy->type == B43legacy_PHYTYPE_B) || 3301 if ((phy->type == B43legacy_PHYTYPE_B) ||
3302 (phy->type == B43legacy_PHYTYPE_G)) { 3302 (phy->type == B43legacy_PHYTYPE_G)) {
3303 phy->_lo_pairs = kzalloc(sizeof(struct b43legacy_lopair) 3303 phy->_lo_pairs = kcalloc(B43legacy_LO_COUNT,
3304 * B43legacy_LO_COUNT, 3304 sizeof(struct b43legacy_lopair),
3305 GFP_KERNEL); 3305 GFP_KERNEL);
3306 if (!phy->_lo_pairs) 3306 if (!phy->_lo_pairs)
3307 return -ENOMEM; 3307 return -ENOMEM;
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c
index 49d37ad96958..c40ba8855cd5 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c
@@ -1486,8 +1486,9 @@ int brcmf_proto_msgbuf_attach(struct brcmf_pub *drvr)
1486 (struct brcmf_commonring **)if_msgbuf->commonrings; 1486 (struct brcmf_commonring **)if_msgbuf->commonrings;
1487 msgbuf->flowrings = (struct brcmf_commonring **)if_msgbuf->flowrings; 1487 msgbuf->flowrings = (struct brcmf_commonring **)if_msgbuf->flowrings;
1488 msgbuf->max_flowrings = if_msgbuf->max_flowrings; 1488 msgbuf->max_flowrings = if_msgbuf->max_flowrings;
1489 msgbuf->flowring_dma_handle = kzalloc(msgbuf->max_flowrings * 1489 msgbuf->flowring_dma_handle =
1490 sizeof(*msgbuf->flowring_dma_handle), GFP_KERNEL); 1490 kcalloc(msgbuf->max_flowrings,
1491 sizeof(*msgbuf->flowring_dma_handle), GFP_KERNEL);
1491 if (!msgbuf->flowring_dma_handle) 1492 if (!msgbuf->flowring_dma_handle)
1492 goto fail; 1493 goto fail;
1493 1494
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c
index 4b2149b48362..3e9c4f2f5dd1 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c
@@ -1058,7 +1058,7 @@ static s32 brcmf_p2p_act_frm_search(struct brcmf_p2p_info *p2p, u16 channel)
1058 channel_cnt = AF_PEER_SEARCH_CNT; 1058 channel_cnt = AF_PEER_SEARCH_CNT;
1059 else 1059 else
1060 channel_cnt = SOCIAL_CHAN_CNT; 1060 channel_cnt = SOCIAL_CHAN_CNT;
1061 default_chan_list = kzalloc(channel_cnt * sizeof(*default_chan_list), 1061 default_chan_list = kcalloc(channel_cnt, sizeof(*default_chan_list),
1062 GFP_KERNEL); 1062 GFP_KERNEL);
1063 if (default_chan_list == NULL) { 1063 if (default_chan_list == NULL) {
1064 brcmf_err("channel list allocation failed\n"); 1064 brcmf_err("channel list allocation failed\n");
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c
index 0a14942b8216..7d4e8f589fdc 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c
@@ -507,7 +507,7 @@ brcms_c_attach_malloc(uint unit, uint *err, uint devid)
507 wlc->hw->wlc = wlc; 507 wlc->hw->wlc = wlc;
508 508
509 wlc->hw->bandstate[0] = 509 wlc->hw->bandstate[0] =
510 kzalloc(sizeof(struct brcms_hw_band) * MAXBANDS, GFP_ATOMIC); 510 kcalloc(MAXBANDS, sizeof(struct brcms_hw_band), GFP_ATOMIC);
511 if (wlc->hw->bandstate[0] == NULL) { 511 if (wlc->hw->bandstate[0] == NULL) {
512 *err = 1006; 512 *err = 1006;
513 goto fail; 513 goto fail;
@@ -521,7 +521,8 @@ brcms_c_attach_malloc(uint unit, uint *err, uint devid)
521 } 521 }
522 522
523 wlc->modulecb = 523 wlc->modulecb =
524 kzalloc(sizeof(struct modulecb) * BRCMS_MAXMODULES, GFP_ATOMIC); 524 kcalloc(BRCMS_MAXMODULES, sizeof(struct modulecb),
525 GFP_ATOMIC);
525 if (wlc->modulecb == NULL) { 526 if (wlc->modulecb == NULL) {
526 *err = 1009; 527 *err = 1009;
527 goto fail; 528 goto fail;
@@ -553,7 +554,7 @@ brcms_c_attach_malloc(uint unit, uint *err, uint devid)
553 } 554 }
554 555
555 wlc->bandstate[0] = 556 wlc->bandstate[0] =
556 kzalloc(sizeof(struct brcms_band)*MAXBANDS, GFP_ATOMIC); 557 kcalloc(MAXBANDS, sizeof(struct brcms_band), GFP_ATOMIC);
557 if (wlc->bandstate[0] == NULL) { 558 if (wlc->bandstate[0] == NULL) {
558 *err = 1025; 559 *err = 1025;
559 goto fail; 560 goto fail;
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 9d830d27b229..9fb0d9fbd939 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_lcn.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_lcn.c
@@ -1387,7 +1387,7 @@ wlc_lcnphy_rx_iq_cal(struct brcms_phy *pi,
1387 s16 *ptr; 1387 s16 *ptr;
1388 struct brcms_phy_lcnphy *pi_lcn = pi->u.pi_lcnphy; 1388 struct brcms_phy_lcnphy *pi_lcn = pi->u.pi_lcnphy;
1389 1389
1390 ptr = kmalloc(sizeof(s16) * 131, GFP_ATOMIC); 1390 ptr = kmalloc_array(131, sizeof(s16), GFP_ATOMIC);
1391 if (NULL == ptr) 1391 if (NULL == ptr)
1392 return false; 1392 return false;
1393 if (module == 2) { 1393 if (module == 2) {
@@ -2670,7 +2670,7 @@ wlc_lcnphy_tx_iqlo_cal(struct brcms_phy *pi,
2670 u16 *values_to_save; 2670 u16 *values_to_save;
2671 struct brcms_phy_lcnphy *pi_lcn = pi->u.pi_lcnphy; 2671 struct brcms_phy_lcnphy *pi_lcn = pi->u.pi_lcnphy;
2672 2672
2673 values_to_save = kmalloc(sizeof(u16) * 20, GFP_ATOMIC); 2673 values_to_save = kmalloc_array(20, sizeof(u16), GFP_ATOMIC);
2674 if (NULL == values_to_save) 2674 if (NULL == values_to_save)
2675 return; 2675 return;
2676 2676
@@ -3678,11 +3678,11 @@ wlc_lcnphy_a1(struct brcms_phy *pi, int cal_type, int num_levels,
3678 u16 *phy_c32; 3678 u16 *phy_c32;
3679 phy_c21 = 0; 3679 phy_c21 = 0;
3680 phy_c10 = phy_c13 = phy_c14 = phy_c8 = 0; 3680 phy_c10 = phy_c13 = phy_c14 = phy_c8 = 0;
3681 ptr = kmalloc(sizeof(s16) * 131, GFP_ATOMIC); 3681 ptr = kmalloc_array(131, sizeof(s16), GFP_ATOMIC);
3682 if (NULL == ptr) 3682 if (NULL == ptr)
3683 return; 3683 return;
3684 3684
3685 phy_c32 = kmalloc(sizeof(u16) * 20, GFP_ATOMIC); 3685 phy_c32 = kmalloc_array(20, sizeof(u16), GFP_ATOMIC);
3686 if (NULL == phy_c32) { 3686 if (NULL == phy_c32) {
3687 kfree(ptr); 3687 kfree(ptr);
3688 return; 3688 return;
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 7e01981bc5c8..1a187557982e 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_n.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_n.c
@@ -23032,7 +23032,7 @@ wlc_phy_loadsampletable_nphy(struct brcms_phy *pi, struct cordic_iq *tone_buf,
23032 u16 t; 23032 u16 t;
23033 u32 *data_buf = NULL; 23033 u32 *data_buf = NULL;
23034 23034
23035 data_buf = kmalloc(sizeof(u32) * num_samps, GFP_ATOMIC); 23035 data_buf = kmalloc_array(num_samps, sizeof(u32), GFP_ATOMIC);
23036 if (data_buf == NULL) 23036 if (data_buf == NULL)
23037 return; 23037 return;
23038 23038
@@ -23074,7 +23074,8 @@ wlc_phy_gen_load_samples_nphy(struct brcms_phy *pi, u32 f_kHz, u16 max_val,
23074 tbl_len = (phy_bw << 1); 23074 tbl_len = (phy_bw << 1);
23075 } 23075 }
23076 23076
23077 tone_buf = kmalloc(sizeof(struct cordic_iq) * tbl_len, GFP_ATOMIC); 23077 tone_buf = kmalloc_array(tbl_len, sizeof(struct cordic_iq),
23078 GFP_ATOMIC);
23078 if (tone_buf == NULL) 23079 if (tone_buf == NULL)
23079 return 0; 23080 return 0;
23080 23081
diff --git a/drivers/net/wireless/cisco/airo.c b/drivers/net/wireless/cisco/airo.c
index ce0fbf83285f..72046e182745 100644
--- a/drivers/net/wireless/cisco/airo.c
+++ b/drivers/net/wireless/cisco/airo.c
@@ -7127,7 +7127,7 @@ static int airo_get_aplist(struct net_device *dev,
7127 int i; 7127 int i;
7128 int loseSync = capable(CAP_NET_ADMIN) ? 1: -1; 7128 int loseSync = capable(CAP_NET_ADMIN) ? 1: -1;
7129 7129
7130 qual = kmalloc(IW_MAX_AP * sizeof(*qual), GFP_KERNEL); 7130 qual = kmalloc_array(IW_MAX_AP, sizeof(*qual), GFP_KERNEL);
7131 if (!qual) 7131 if (!qual)
7132 return -ENOMEM; 7132 return -ENOMEM;
7133 7133
diff --git a/drivers/net/wireless/intel/ipw2x00/ipw2100.c b/drivers/net/wireless/intel/ipw2x00/ipw2100.c
index 7c4f550a1475..b8fd3cc90634 100644
--- a/drivers/net/wireless/intel/ipw2x00/ipw2100.c
+++ b/drivers/net/wireless/intel/ipw2x00/ipw2100.c
@@ -3445,8 +3445,9 @@ static int ipw2100_msg_allocate(struct ipw2100_priv *priv)
3445 dma_addr_t p; 3445 dma_addr_t p;
3446 3446
3447 priv->msg_buffers = 3447 priv->msg_buffers =
3448 kmalloc(IPW_COMMAND_POOL_SIZE * sizeof(struct ipw2100_tx_packet), 3448 kmalloc_array(IPW_COMMAND_POOL_SIZE,
3449 GFP_KERNEL); 3449 sizeof(struct ipw2100_tx_packet),
3450 GFP_KERNEL);
3450 if (!priv->msg_buffers) 3451 if (!priv->msg_buffers)
3451 return -ENOMEM; 3452 return -ENOMEM;
3452 3453
@@ -4587,9 +4588,9 @@ static int ipw2100_rx_allocate(struct ipw2100_priv *priv)
4587 /* 4588 /*
4588 * allocate packets 4589 * allocate packets
4589 */ 4590 */
4590 priv->rx_buffers = kmalloc(RX_QUEUE_LENGTH * 4591 priv->rx_buffers = kmalloc_array(RX_QUEUE_LENGTH,
4591 sizeof(struct ipw2100_rx_packet), 4592 sizeof(struct ipw2100_rx_packet),
4592 GFP_KERNEL); 4593 GFP_KERNEL);
4593 if (!priv->rx_buffers) { 4594 if (!priv->rx_buffers) {
4594 IPW_DEBUG_INFO("can't allocate rx packet buffer table\n"); 4595 IPW_DEBUG_INFO("can't allocate rx packet buffer table\n");
4595 4596
diff --git a/drivers/net/wireless/intel/ipw2x00/ipw2200.c b/drivers/net/wireless/intel/ipw2x00/ipw2200.c
index f26beeb6c5ff..8a858f7e36f4 100644
--- a/drivers/net/wireless/intel/ipw2x00/ipw2200.c
+++ b/drivers/net/wireless/intel/ipw2x00/ipw2200.c
@@ -3208,13 +3208,13 @@ static int ipw_load_firmware(struct ipw_priv *priv, u8 * data, size_t len)
3208 3208
3209 IPW_DEBUG_TRACE("<< :\n"); 3209 IPW_DEBUG_TRACE("<< :\n");
3210 3210
3211 virts = kmalloc(sizeof(void *) * CB_NUMBER_OF_ELEMENTS_SMALL, 3211 virts = kmalloc_array(CB_NUMBER_OF_ELEMENTS_SMALL, sizeof(void *),
3212 GFP_KERNEL); 3212 GFP_KERNEL);
3213 if (!virts) 3213 if (!virts)
3214 return -ENOMEM; 3214 return -ENOMEM;
3215 3215
3216 phys = kmalloc(sizeof(dma_addr_t) * CB_NUMBER_OF_ELEMENTS_SMALL, 3216 phys = kmalloc_array(CB_NUMBER_OF_ELEMENTS_SMALL, sizeof(dma_addr_t),
3217 GFP_KERNEL); 3217 GFP_KERNEL);
3218 if (!phys) { 3218 if (!phys) {
3219 kfree(virts); 3219 kfree(virts);
3220 return -ENOMEM; 3220 return -ENOMEM;
@@ -3782,7 +3782,7 @@ static int ipw_queue_tx_init(struct ipw_priv *priv,
3782{ 3782{
3783 struct pci_dev *dev = priv->pci_dev; 3783 struct pci_dev *dev = priv->pci_dev;
3784 3784
3785 q->txb = kmalloc(sizeof(q->txb[0]) * count, GFP_KERNEL); 3785 q->txb = kmalloc_array(count, sizeof(q->txb[0]), GFP_KERNEL);
3786 if (!q->txb) { 3786 if (!q->txb) {
3787 IPW_ERROR("vmalloc for auxiliary BD structures failed\n"); 3787 IPW_ERROR("vmalloc for auxiliary BD structures failed\n");
3788 return -ENOMEM; 3788 return -ENOMEM;
diff --git a/drivers/net/wireless/intel/iwlegacy/common.c b/drivers/net/wireless/intel/iwlegacy/common.c
index 063e19ced7c8..6514baf799fe 100644
--- a/drivers/net/wireless/intel/iwlegacy/common.c
+++ b/drivers/net/wireless/intel/iwlegacy/common.c
@@ -922,7 +922,7 @@ il_init_channel_map(struct il_priv *il)
922 D_EEPROM("Parsing data for %d channels.\n", il->channel_count); 922 D_EEPROM("Parsing data for %d channels.\n", il->channel_count);
923 923
924 il->channel_info = 924 il->channel_info =
925 kzalloc(sizeof(struct il_channel_info) * il->channel_count, 925 kcalloc(il->channel_count, sizeof(struct il_channel_info),
926 GFP_KERNEL); 926 GFP_KERNEL);
927 if (!il->channel_info) { 927 if (!il->channel_info) {
928 IL_ERR("Could not allocate channel_info\n"); 928 IL_ERR("Could not allocate channel_info\n");
@@ -3041,9 +3041,9 @@ il_tx_queue_init(struct il_priv *il, u32 txq_id)
3041 } 3041 }
3042 3042
3043 txq->meta = 3043 txq->meta =
3044 kzalloc(sizeof(struct il_cmd_meta) * actual_slots, GFP_KERNEL); 3044 kcalloc(actual_slots, sizeof(struct il_cmd_meta), GFP_KERNEL);
3045 txq->cmd = 3045 txq->cmd =
3046 kzalloc(sizeof(struct il_device_cmd *) * actual_slots, GFP_KERNEL); 3046 kcalloc(actual_slots, sizeof(struct il_device_cmd *), GFP_KERNEL);
3047 3047
3048 if (!txq->meta || !txq->cmd) 3048 if (!txq->meta || !txq->cmd)
3049 goto out_free_arrays; 3049 goto out_free_arrays;
@@ -3455,7 +3455,7 @@ il_init_geos(struct il_priv *il)
3455 } 3455 }
3456 3456
3457 channels = 3457 channels =
3458 kzalloc(sizeof(struct ieee80211_channel) * il->channel_count, 3458 kcalloc(il->channel_count, sizeof(struct ieee80211_channel),
3459 GFP_KERNEL); 3459 GFP_KERNEL);
3460 if (!channels) 3460 if (!channels)
3461 return -ENOMEM; 3461 return -ENOMEM;
@@ -4654,8 +4654,9 @@ il_alloc_txq_mem(struct il_priv *il)
4654{ 4654{
4655 if (!il->txq) 4655 if (!il->txq)
4656 il->txq = 4656 il->txq =
4657 kzalloc(sizeof(struct il_tx_queue) * 4657 kcalloc(il->cfg->num_of_queues,
4658 il->cfg->num_of_queues, GFP_KERNEL); 4658 sizeof(struct il_tx_queue),
4659 GFP_KERNEL);
4659 if (!il->txq) { 4660 if (!il->txq) {
4660 IL_ERR("Not enough memory for txq\n"); 4661 IL_ERR("Not enough memory for txq\n");
4661 return -ENOMEM; 4662 return -ENOMEM;
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
index 4b3753d78d03..11ecdf63b732 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
@@ -564,7 +564,7 @@ iwl_mvm_config_sched_scan_profiles(struct iwl_mvm *mvm,
564 else 564 else
565 blacklist_len = IWL_SCAN_MAX_BLACKLIST_LEN; 565 blacklist_len = IWL_SCAN_MAX_BLACKLIST_LEN;
566 566
567 blacklist = kzalloc(sizeof(*blacklist) * blacklist_len, GFP_KERNEL); 567 blacklist = kcalloc(blacklist_len, sizeof(*blacklist), GFP_KERNEL);
568 if (!blacklist) 568 if (!blacklist)
569 return -ENOMEM; 569 return -ENOMEM;
570 570
diff --git a/drivers/net/wireless/intersil/hostap/hostap_info.c b/drivers/net/wireless/intersil/hostap/hostap_info.c
index de8a099a9386..da8c30f10d92 100644
--- a/drivers/net/wireless/intersil/hostap/hostap_info.c
+++ b/drivers/net/wireless/intersil/hostap/hostap_info.c
@@ -271,8 +271,9 @@ static void prism2_info_scanresults(local_info_t *local, unsigned char *buf,
271 left -= 4; 271 left -= 4;
272 272
273 new_count = left / sizeof(struct hfa384x_scan_result); 273 new_count = left / sizeof(struct hfa384x_scan_result);
274 results = kmalloc(new_count * sizeof(struct hfa384x_hostscan_result), 274 results = kmalloc_array(new_count,
275 GFP_ATOMIC); 275 sizeof(struct hfa384x_hostscan_result),
276 GFP_ATOMIC);
276 if (results == NULL) 277 if (results == NULL)
277 return; 278 return;
278 279
diff --git a/drivers/net/wireless/intersil/hostap/hostap_ioctl.c b/drivers/net/wireless/intersil/hostap/hostap_ioctl.c
index c1bc0a6ef300..1ca9731d9b14 100644
--- a/drivers/net/wireless/intersil/hostap/hostap_ioctl.c
+++ b/drivers/net/wireless/intersil/hostap/hostap_ioctl.c
@@ -513,8 +513,8 @@ static int prism2_ioctl_giwaplist(struct net_device *dev,
513 return -EOPNOTSUPP; 513 return -EOPNOTSUPP;
514 } 514 }
515 515
516 addr = kmalloc(sizeof(struct sockaddr) * IW_MAX_AP, GFP_KERNEL); 516 addr = kmalloc_array(IW_MAX_AP, sizeof(struct sockaddr), GFP_KERNEL);
517 qual = kmalloc(sizeof(struct iw_quality) * IW_MAX_AP, GFP_KERNEL); 517 qual = kmalloc_array(IW_MAX_AP, sizeof(struct iw_quality), GFP_KERNEL);
518 if (addr == NULL || qual == NULL) { 518 if (addr == NULL || qual == NULL) {
519 kfree(addr); 519 kfree(addr);
520 kfree(qual); 520 kfree(qual);
diff --git a/drivers/net/wireless/intersil/p54/eeprom.c b/drivers/net/wireless/intersil/p54/eeprom.c
index d4c73d39336f..de2ef95c386c 100644
--- a/drivers/net/wireless/intersil/p54/eeprom.c
+++ b/drivers/net/wireless/intersil/p54/eeprom.c
@@ -161,8 +161,9 @@ static int p54_generate_band(struct ieee80211_hw *dev,
161 if (!tmp) 161 if (!tmp)
162 goto err_out; 162 goto err_out;
163 163
164 tmp->channels = kzalloc(sizeof(struct ieee80211_channel) * 164 tmp->channels = kcalloc(list->band_channel_num[band],
165 list->band_channel_num[band], GFP_KERNEL); 165 sizeof(struct ieee80211_channel),
166 GFP_KERNEL);
166 if (!tmp->channels) 167 if (!tmp->channels)
167 goto err_out; 168 goto err_out;
168 169
@@ -344,7 +345,7 @@ static int p54_generate_channel_lists(struct ieee80211_hw *dev)
344 goto free; 345 goto free;
345 } 346 }
346 priv->chan_num = max_channel_num; 347 priv->chan_num = max_channel_num;
347 priv->survey = kzalloc(sizeof(struct survey_info) * max_channel_num, 348 priv->survey = kcalloc(max_channel_num, sizeof(struct survey_info),
348 GFP_KERNEL); 349 GFP_KERNEL);
349 if (!priv->survey) { 350 if (!priv->survey) {
350 ret = -ENOMEM; 351 ret = -ENOMEM;
@@ -352,8 +353,9 @@ static int p54_generate_channel_lists(struct ieee80211_hw *dev)
352 } 353 }
353 354
354 list->max_entries = max_channel_num; 355 list->max_entries = max_channel_num;
355 list->channels = kzalloc(sizeof(struct p54_channel_entry) * 356 list->channels = kcalloc(max_channel_num,
356 max_channel_num, GFP_KERNEL); 357 sizeof(struct p54_channel_entry),
358 GFP_KERNEL);
357 if (!list->channels) { 359 if (!list->channels) {
358 ret = -ENOMEM; 360 ret = -ENOMEM;
359 goto free; 361 goto free;
diff --git a/drivers/net/wireless/intersil/prism54/oid_mgt.c b/drivers/net/wireless/intersil/prism54/oid_mgt.c
index 6528ed5b9b1d..6d57e1cbcc07 100644
--- a/drivers/net/wireless/intersil/prism54/oid_mgt.c
+++ b/drivers/net/wireless/intersil/prism54/oid_mgt.c
@@ -244,7 +244,7 @@ mgt_init(islpci_private *priv)
244 /* Alloc the cache */ 244 /* Alloc the cache */
245 for (i = 0; i < OID_NUM_LAST; i++) { 245 for (i = 0; i < OID_NUM_LAST; i++) {
246 if (isl_oid[i].flags & OID_FLAG_CACHED) { 246 if (isl_oid[i].flags & OID_FLAG_CACHED) {
247 priv->mib[i] = kzalloc(isl_oid[i].size * 247 priv->mib[i] = kcalloc(isl_oid[i].size,
248 (isl_oid[i].range + 1), 248 (isl_oid[i].range + 1),
249 GFP_KERNEL); 249 GFP_KERNEL);
250 if (!priv->mib[i]) 250 if (!priv->mib[i])
diff --git a/drivers/net/wireless/marvell/mwifiex/11n_rxreorder.c b/drivers/net/wireless/marvell/mwifiex/11n_rxreorder.c
index 1edcddaf7b4b..7ab44cd32a9d 100644
--- a/drivers/net/wireless/marvell/mwifiex/11n_rxreorder.c
+++ b/drivers/net/wireless/marvell/mwifiex/11n_rxreorder.c
@@ -399,8 +399,8 @@ mwifiex_11n_create_rx_reorder_tbl(struct mwifiex_private *priv, u8 *ta,
399 399
400 new_node->win_size = win_size; 400 new_node->win_size = win_size;
401 401
402 new_node->rx_reorder_ptr = kzalloc(sizeof(void *) * win_size, 402 new_node->rx_reorder_ptr = kcalloc(win_size, sizeof(void *),
403 GFP_KERNEL); 403 GFP_KERNEL);
404 if (!new_node->rx_reorder_ptr) { 404 if (!new_node->rx_reorder_ptr) {
405 kfree((u8 *) new_node); 405 kfree((u8 *) new_node);
406 mwifiex_dbg(priv->adapter, ERROR, 406 mwifiex_dbg(priv->adapter, ERROR,
diff --git a/drivers/net/wireless/marvell/mwifiex/cfg80211.c b/drivers/net/wireless/marvell/mwifiex/cfg80211.c
index a67e2d66ac9d..4b5ae9098504 100644
--- a/drivers/net/wireless/marvell/mwifiex/cfg80211.c
+++ b/drivers/net/wireless/marvell/mwifiex/cfg80211.c
@@ -4242,8 +4242,8 @@ int mwifiex_init_channel_scan_gap(struct mwifiex_adapter *adapter)
4242 * additional active scan request for hidden SSIDs on passive channels. 4242 * additional active scan request for hidden SSIDs on passive channels.
4243 */ 4243 */
4244 adapter->num_in_chan_stats = 2 * (n_channels_bg + n_channels_a); 4244 adapter->num_in_chan_stats = 2 * (n_channels_bg + n_channels_a);
4245 adapter->chan_stats = vmalloc(sizeof(*adapter->chan_stats) * 4245 adapter->chan_stats = vmalloc(array_size(sizeof(*adapter->chan_stats),
4246 adapter->num_in_chan_stats); 4246 adapter->num_in_chan_stats));
4247 4247
4248 if (!adapter->chan_stats) 4248 if (!adapter->chan_stats)
4249 return -ENOMEM; 4249 return -ENOMEM;
diff --git a/drivers/net/wireless/marvell/mwifiex/sdio.c b/drivers/net/wireless/marvell/mwifiex/sdio.c
index 47d2dcc3f28f..dfdcbc4f141a 100644
--- a/drivers/net/wireless/marvell/mwifiex/sdio.c
+++ b/drivers/net/wireless/marvell/mwifiex/sdio.c
@@ -2106,15 +2106,16 @@ static int mwifiex_init_sdio(struct mwifiex_adapter *adapter)
2106 return -ENOMEM; 2106 return -ENOMEM;
2107 2107
2108 /* Allocate skb pointer buffers */ 2108 /* Allocate skb pointer buffers */
2109 card->mpa_rx.skb_arr = kzalloc((sizeof(void *)) * 2109 card->mpa_rx.skb_arr = kcalloc(card->mp_agg_pkt_limit, sizeof(void *),
2110 card->mp_agg_pkt_limit, GFP_KERNEL); 2110 GFP_KERNEL);
2111 if (!card->mpa_rx.skb_arr) { 2111 if (!card->mpa_rx.skb_arr) {
2112 kfree(card->mp_regs); 2112 kfree(card->mp_regs);
2113 return -ENOMEM; 2113 return -ENOMEM;
2114 } 2114 }
2115 2115
2116 card->mpa_rx.len_arr = kzalloc(sizeof(*card->mpa_rx.len_arr) * 2116 card->mpa_rx.len_arr = kcalloc(card->mp_agg_pkt_limit,
2117 card->mp_agg_pkt_limit, GFP_KERNEL); 2117 sizeof(*card->mpa_rx.len_arr),
2118 GFP_KERNEL);
2118 if (!card->mpa_rx.len_arr) { 2119 if (!card->mpa_rx.len_arr) {
2119 kfree(card->mp_regs); 2120 kfree(card->mp_regs);
2120 kfree(card->mpa_rx.skb_arr); 2121 kfree(card->mpa_rx.skb_arr);
diff --git a/drivers/net/wireless/mediatek/mt76/mac80211.c b/drivers/net/wireless/mediatek/mt76/mac80211.c
index fcd079a96782..d62e34e7eadf 100644
--- a/drivers/net/wireless/mediatek/mt76/mac80211.c
+++ b/drivers/net/wireless/mediatek/mt76/mac80211.c
@@ -181,7 +181,7 @@ mt76_init_sband(struct mt76_dev *dev, struct mt76_sband *msband,
181 if (!chanlist) 181 if (!chanlist)
182 return -ENOMEM; 182 return -ENOMEM;
183 183
184 msband->chan = devm_kzalloc(dev->dev, n_chan * sizeof(*msband->chan), 184 msband->chan = devm_kcalloc(dev->dev, n_chan, sizeof(*msband->chan),
185 GFP_KERNEL); 185 GFP_KERNEL);
186 if (!msband->chan) 186 if (!msband->chan)
187 return -ENOMEM; 187 return -ENOMEM;
diff --git a/drivers/net/wireless/quantenna/qtnfmac/commands.c b/drivers/net/wireless/quantenna/qtnfmac/commands.c
index 5eb143667539..c5d94a95e21a 100644
--- a/drivers/net/wireless/quantenna/qtnfmac/commands.c
+++ b/drivers/net/wireless/quantenna/qtnfmac/commands.c
@@ -1216,7 +1216,7 @@ static int qtnf_parse_variable_mac_info(struct qtnf_wmac *mac,
1216 return -EINVAL; 1216 return -EINVAL;
1217 } 1217 }
1218 1218
1219 limits = kzalloc(sizeof(*limits) * rec->n_limits, 1219 limits = kcalloc(rec->n_limits, sizeof(*limits),
1220 GFP_KERNEL); 1220 GFP_KERNEL);
1221 if (!limits) 1221 if (!limits)
1222 return -ENOMEM; 1222 return -ENOMEM;
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2x00debug.c b/drivers/net/wireless/ralink/rt2x00/rt2x00debug.c
index 0eee479583b8..acc399b5574e 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2x00debug.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00debug.c
@@ -397,7 +397,7 @@ static ssize_t rt2x00debug_read_crypto_stats(struct file *file,
397 if (*offset) 397 if (*offset)
398 return 0; 398 return 0;
399 399
400 data = kzalloc((1 + CIPHER_MAX) * MAX_LINE_LENGTH, GFP_KERNEL); 400 data = kcalloc(1 + CIPHER_MAX, MAX_LINE_LENGTH, GFP_KERNEL);
401 if (!data) 401 if (!data)
402 return -ENOMEM; 402 return -ENOMEM;
403 403
diff --git a/drivers/net/wireless/realtek/rtlwifi/efuse.c b/drivers/net/wireless/realtek/rtlwifi/efuse.c
index fd13d4ef53b8..9729e51fce38 100644
--- a/drivers/net/wireless/realtek/rtlwifi/efuse.c
+++ b/drivers/net/wireless/realtek/rtlwifi/efuse.c
@@ -258,8 +258,8 @@ void read_efuse(struct ieee80211_hw *hw, u16 _offset, u16 _size_byte, u8 *pbuf)
258 } 258 }
259 259
260 /* allocate memory for efuse_tbl and efuse_word */ 260 /* allocate memory for efuse_tbl and efuse_word */
261 efuse_tbl = kzalloc(rtlpriv->cfg->maps[EFUSE_HWSET_MAX_SIZE] * 261 efuse_tbl = kzalloc(rtlpriv->cfg->maps[EFUSE_HWSET_MAX_SIZE],
262 sizeof(u8), GFP_ATOMIC); 262 GFP_ATOMIC);
263 if (!efuse_tbl) 263 if (!efuse_tbl)
264 return; 264 return;
265 efuse_word = kcalloc(EFUSE_MAX_WORD_UNIT, sizeof(u16 *), GFP_ATOMIC); 265 efuse_word = kcalloc(EFUSE_MAX_WORD_UNIT, sizeof(u16 *), GFP_ATOMIC);
diff --git a/drivers/net/wireless/realtek/rtlwifi/usb.c b/drivers/net/wireless/realtek/rtlwifi/usb.c
index ce3103bb8ebb..f9faffc498bc 100644
--- a/drivers/net/wireless/realtek/rtlwifi/usb.c
+++ b/drivers/net/wireless/realtek/rtlwifi/usb.c
@@ -1048,7 +1048,7 @@ int rtl_usb_probe(struct usb_interface *intf,
1048 } 1048 }
1049 rtlpriv = hw->priv; 1049 rtlpriv = hw->priv;
1050 rtlpriv->hw = hw; 1050 rtlpriv->hw = hw;
1051 rtlpriv->usb_data = kzalloc(RTL_USB_MAX_RX_COUNT * sizeof(u32), 1051 rtlpriv->usb_data = kcalloc(RTL_USB_MAX_RX_COUNT, sizeof(u32),
1052 GFP_KERNEL); 1052 GFP_KERNEL);
1053 if (!rtlpriv->usb_data) 1053 if (!rtlpriv->usb_data)
1054 return -ENOMEM; 1054 return -ENOMEM;
diff --git a/drivers/net/wireless/st/cw1200/queue.c b/drivers/net/wireless/st/cw1200/queue.c
index 5153d2cfd991..7c31b63b8258 100644
--- a/drivers/net/wireless/st/cw1200/queue.c
+++ b/drivers/net/wireless/st/cw1200/queue.c
@@ -154,7 +154,7 @@ int cw1200_queue_stats_init(struct cw1200_queue_stats *stats,
154 spin_lock_init(&stats->lock); 154 spin_lock_init(&stats->lock);
155 init_waitqueue_head(&stats->wait_link_id_empty); 155 init_waitqueue_head(&stats->wait_link_id_empty);
156 156
157 stats->link_map_cache = kzalloc(sizeof(int) * map_capacity, 157 stats->link_map_cache = kcalloc(map_capacity, sizeof(int),
158 GFP_KERNEL); 158 GFP_KERNEL);
159 if (!stats->link_map_cache) 159 if (!stats->link_map_cache)
160 return -ENOMEM; 160 return -ENOMEM;
@@ -181,13 +181,13 @@ int cw1200_queue_init(struct cw1200_queue *queue,
181 spin_lock_init(&queue->lock); 181 spin_lock_init(&queue->lock);
182 timer_setup(&queue->gc, cw1200_queue_gc, 0); 182 timer_setup(&queue->gc, cw1200_queue_gc, 0);
183 183
184 queue->pool = kzalloc(sizeof(struct cw1200_queue_item) * capacity, 184 queue->pool = kcalloc(capacity, sizeof(struct cw1200_queue_item),
185 GFP_KERNEL); 185 GFP_KERNEL);
186 if (!queue->pool) 186 if (!queue->pool)
187 return -ENOMEM; 187 return -ENOMEM;
188 188
189 queue->link_map_cache = kzalloc(sizeof(int) * stats->map_capacity, 189 queue->link_map_cache = kcalloc(stats->map_capacity, sizeof(int),
190 GFP_KERNEL); 190 GFP_KERNEL);
191 if (!queue->link_map_cache) { 191 if (!queue->link_map_cache) {
192 kfree(queue->pool); 192 kfree(queue->pool);
193 queue->pool = NULL; 193 queue->pool = NULL;
diff --git a/drivers/net/wireless/st/cw1200/scan.c b/drivers/net/wireless/st/cw1200/scan.c
index cc2ce60f4f09..67213f11acbd 100644
--- a/drivers/net/wireless/st/cw1200/scan.c
+++ b/drivers/net/wireless/st/cw1200/scan.c
@@ -230,9 +230,9 @@ void cw1200_scan_work(struct work_struct *work)
230 scan.type = WSM_SCAN_TYPE_BACKGROUND; 230 scan.type = WSM_SCAN_TYPE_BACKGROUND;
231 scan.flags = WSM_SCAN_FLAG_FORCE_BACKGROUND; 231 scan.flags = WSM_SCAN_FLAG_FORCE_BACKGROUND;
232 } 232 }
233 scan.ch = kzalloc( 233 scan.ch = kcalloc(it - priv->scan.curr,
234 sizeof(struct wsm_scan_ch) * (it - priv->scan.curr), 234 sizeof(struct wsm_scan_ch),
235 GFP_KERNEL); 235 GFP_KERNEL);
236 if (!scan.ch) { 236 if (!scan.ch) {
237 priv->scan.status = -ENOMEM; 237 priv->scan.status = -ENOMEM;
238 goto fail; 238 goto fail;
diff --git a/drivers/net/wireless/zydas/zd1211rw/zd_mac.c b/drivers/net/wireless/zydas/zd1211rw/zd_mac.c
index b01b44a5d16e..1f6d9f357e57 100644
--- a/drivers/net/wireless/zydas/zd1211rw/zd_mac.c
+++ b/drivers/net/wireless/zydas/zd1211rw/zd_mac.c
@@ -732,7 +732,8 @@ static int zd_mac_config_beacon(struct ieee80211_hw *hw, struct sk_buff *beacon,
732 732
733 /* Alloc memory for full beacon write at once. */ 733 /* Alloc memory for full beacon write at once. */
734 num_cmds = 1 + zd_chip_is_zd1211b(&mac->chip) + full_len; 734 num_cmds = 1 + zd_chip_is_zd1211b(&mac->chip) + full_len;
735 ioreqs = kmalloc(num_cmds * sizeof(struct zd_ioreq32), GFP_KERNEL); 735 ioreqs = kmalloc_array(num_cmds, sizeof(struct zd_ioreq32),
736 GFP_KERNEL);
736 if (!ioreqs) { 737 if (!ioreqs) {
737 r = -ENOMEM; 738 r = -ENOMEM;
738 goto out_nofree; 739 goto out_nofree;
diff --git a/drivers/net/xen-netback/xenbus.c b/drivers/net/xen-netback/xenbus.c
index e1aef253601e..cd51492ae6c2 100644
--- a/drivers/net/xen-netback/xenbus.c
+++ b/drivers/net/xen-netback/xenbus.c
@@ -977,8 +977,8 @@ static void connect(struct backend_info *be)
977 } 977 }
978 978
979 /* Use the number of queues requested by the frontend */ 979 /* Use the number of queues requested by the frontend */
980 be->vif->queues = vzalloc(requested_num_queues * 980 be->vif->queues = vzalloc(array_size(requested_num_queues,
981 sizeof(struct xenvif_queue)); 981 sizeof(struct xenvif_queue)));
982 if (!be->vif->queues) { 982 if (!be->vif->queues) {
983 xenbus_dev_fatal(dev, -ENOMEM, 983 xenbus_dev_fatal(dev, -ENOMEM,
984 "allocating queues"); 984 "allocating queues");
diff --git a/drivers/nfc/fdp/i2c.c b/drivers/nfc/fdp/i2c.c
index c4da50e07bbc..d8d70dd830b0 100644
--- a/drivers/nfc/fdp/i2c.c
+++ b/drivers/nfc/fdp/i2c.c
@@ -259,8 +259,8 @@ static void fdp_nci_i2c_read_device_properties(struct device *dev,
259 /* Add 1 to the length to inclue the length byte itself */ 259 /* Add 1 to the length to inclue the length byte itself */
260 len++; 260 len++;
261 261
262 *fw_vsc_cfg = devm_kmalloc(dev, 262 *fw_vsc_cfg = devm_kmalloc_array(dev,
263 len * sizeof(**fw_vsc_cfg), 263 len, sizeof(**fw_vsc_cfg),
264 GFP_KERNEL); 264 GFP_KERNEL);
265 265
266 r = device_property_read_u8_array(dev, FDP_DP_FW_VSC_CFG_NAME, 266 r = device_property_read_u8_array(dev, FDP_DP_FW_VSC_CFG_NAME,
diff --git a/drivers/ntb/hw/amd/ntb_hw_amd.c b/drivers/ntb/hw/amd/ntb_hw_amd.c
index 3cfa46876239..efb214fc545a 100644
--- a/drivers/ntb/hw/amd/ntb_hw_amd.c
+++ b/drivers/ntb/hw/amd/ntb_hw_amd.c
@@ -592,12 +592,12 @@ static int ndev_init_isr(struct amd_ntb_dev *ndev,
592 ndev->db_mask = ndev->db_valid_mask; 592 ndev->db_mask = ndev->db_valid_mask;
593 593
594 /* Try to set up msix irq */ 594 /* Try to set up msix irq */
595 ndev->vec = kzalloc_node(msix_max * sizeof(*ndev->vec), 595 ndev->vec = kcalloc_node(msix_max, sizeof(*ndev->vec),
596 GFP_KERNEL, node); 596 GFP_KERNEL, node);
597 if (!ndev->vec) 597 if (!ndev->vec)
598 goto err_msix_vec_alloc; 598 goto err_msix_vec_alloc;
599 599
600 ndev->msix = kzalloc_node(msix_max * sizeof(*ndev->msix), 600 ndev->msix = kcalloc_node(msix_max, sizeof(*ndev->msix),
601 GFP_KERNEL, node); 601 GFP_KERNEL, node);
602 if (!ndev->msix) 602 if (!ndev->msix)
603 goto err_msix_alloc; 603 goto err_msix_alloc;
diff --git a/drivers/ntb/hw/intel/ntb_hw_gen1.c b/drivers/ntb/hw/intel/ntb_hw_gen1.c
index ffdee98e8ece..6aa573227279 100644
--- a/drivers/ntb/hw/intel/ntb_hw_gen1.c
+++ b/drivers/ntb/hw/intel/ntb_hw_gen1.c
@@ -380,12 +380,12 @@ int ndev_init_isr(struct intel_ntb_dev *ndev,
380 380
381 /* Try to set up msix irq */ 381 /* Try to set up msix irq */
382 382
383 ndev->vec = kzalloc_node(msix_max * sizeof(*ndev->vec), 383 ndev->vec = kcalloc_node(msix_max, sizeof(*ndev->vec),
384 GFP_KERNEL, node); 384 GFP_KERNEL, node);
385 if (!ndev->vec) 385 if (!ndev->vec)
386 goto err_msix_vec_alloc; 386 goto err_msix_vec_alloc;
387 387
388 ndev->msix = kzalloc_node(msix_max * sizeof(*ndev->msix), 388 ndev->msix = kcalloc_node(msix_max, sizeof(*ndev->msix),
389 GFP_KERNEL, node); 389 GFP_KERNEL, node);
390 if (!ndev->msix) 390 if (!ndev->msix)
391 goto err_msix_alloc; 391 goto err_msix_alloc;
diff --git a/drivers/ntb/ntb_transport.c b/drivers/ntb/ntb_transport.c
index 8145be34328b..939895966476 100644
--- a/drivers/ntb/ntb_transport.c
+++ b/drivers/ntb/ntb_transport.c
@@ -1102,7 +1102,7 @@ static int ntb_transport_probe(struct ntb_client *self, struct ntb_dev *ndev)
1102 max_mw_count_for_spads = (spad_count - MW0_SZ_HIGH) / 2; 1102 max_mw_count_for_spads = (spad_count - MW0_SZ_HIGH) / 2;
1103 nt->mw_count = min(mw_count, max_mw_count_for_spads); 1103 nt->mw_count = min(mw_count, max_mw_count_for_spads);
1104 1104
1105 nt->mw_vec = kzalloc_node(mw_count * sizeof(*nt->mw_vec), 1105 nt->mw_vec = kcalloc_node(mw_count, sizeof(*nt->mw_vec),
1106 GFP_KERNEL, node); 1106 GFP_KERNEL, node);
1107 if (!nt->mw_vec) { 1107 if (!nt->mw_vec) {
1108 rc = -ENOMEM; 1108 rc = -ENOMEM;
@@ -1143,7 +1143,7 @@ static int ntb_transport_probe(struct ntb_client *self, struct ntb_dev *ndev)
1143 nt->qp_bitmap = qp_bitmap; 1143 nt->qp_bitmap = qp_bitmap;
1144 nt->qp_bitmap_free = qp_bitmap; 1144 nt->qp_bitmap_free = qp_bitmap;
1145 1145
1146 nt->qp_vec = kzalloc_node(qp_count * sizeof(*nt->qp_vec), 1146 nt->qp_vec = kcalloc_node(qp_count, sizeof(*nt->qp_vec),
1147 GFP_KERNEL, node); 1147 GFP_KERNEL, node);
1148 if (!nt->qp_vec) { 1148 if (!nt->qp_vec) {
1149 rc = -ENOMEM; 1149 rc = -ENOMEM;
diff --git a/drivers/nvmem/rockchip-efuse.c b/drivers/nvmem/rockchip-efuse.c
index b3b0b648be62..146de9489339 100644
--- a/drivers/nvmem/rockchip-efuse.c
+++ b/drivers/nvmem/rockchip-efuse.c
@@ -122,7 +122,8 @@ static int rockchip_rk3328_efuse_read(void *context, unsigned int offset,
122 addr_offset = offset % RK3399_NBYTES; 122 addr_offset = offset % RK3399_NBYTES;
123 addr_len = addr_end - addr_start; 123 addr_len = addr_end - addr_start;
124 124
125 buf = kzalloc(sizeof(*buf) * addr_len * RK3399_NBYTES, GFP_KERNEL); 125 buf = kzalloc(array3_size(addr_len, RK3399_NBYTES, sizeof(*buf)),
126 GFP_KERNEL);
126 if (!buf) { 127 if (!buf) {
127 ret = -ENOMEM; 128 ret = -ENOMEM;
128 goto nomem; 129 goto nomem;
@@ -174,7 +175,8 @@ static int rockchip_rk3399_efuse_read(void *context, unsigned int offset,
174 addr_offset = offset % RK3399_NBYTES; 175 addr_offset = offset % RK3399_NBYTES;
175 addr_len = addr_end - addr_start; 176 addr_len = addr_end - addr_start;
176 177
177 buf = kzalloc(sizeof(*buf) * addr_len * RK3399_NBYTES, GFP_KERNEL); 178 buf = kzalloc(array3_size(addr_len, RK3399_NBYTES, sizeof(*buf)),
179 GFP_KERNEL);
178 if (!buf) { 180 if (!buf) {
179 clk_disable_unprepare(efuse->clk); 181 clk_disable_unprepare(efuse->clk);
180 return -ENOMEM; 182 return -ENOMEM;
diff --git a/drivers/nvmem/sunxi_sid.c b/drivers/nvmem/sunxi_sid.c
index 26bb637afe92..d020f89248fd 100644
--- a/drivers/nvmem/sunxi_sid.c
+++ b/drivers/nvmem/sunxi_sid.c
@@ -185,7 +185,7 @@ static int sunxi_sid_probe(struct platform_device *pdev)
185 if (IS_ERR(nvmem)) 185 if (IS_ERR(nvmem))
186 return PTR_ERR(nvmem); 186 return PTR_ERR(nvmem);
187 187
188 randomness = kzalloc(sizeof(u8) * (size), GFP_KERNEL); 188 randomness = kzalloc(size, GFP_KERNEL);
189 if (!randomness) { 189 if (!randomness) {
190 ret = -EINVAL; 190 ret = -EINVAL;
191 goto err_unreg_nvmem; 191 goto err_unreg_nvmem;
diff --git a/drivers/of/platform.c b/drivers/of/platform.c
index 59731a950c1f..6925d993e1f0 100644
--- a/drivers/of/platform.c
+++ b/drivers/of/platform.c
@@ -129,7 +129,7 @@ struct platform_device *of_device_alloc(struct device_node *np,
129 129
130 /* Populate the resource table */ 130 /* Populate the resource table */
131 if (num_irq || num_reg) { 131 if (num_irq || num_reg) {
132 res = kzalloc(sizeof(*res) * (num_irq + num_reg), GFP_KERNEL); 132 res = kcalloc(num_irq + num_reg, sizeof(*res), GFP_KERNEL);
133 if (!res) { 133 if (!res) {
134 platform_device_put(dev); 134 platform_device_put(dev);
135 return NULL; 135 return NULL;
diff --git a/drivers/of/unittest.c b/drivers/of/unittest.c
index ecee50d10d14..722537e14848 100644
--- a/drivers/of/unittest.c
+++ b/drivers/of/unittest.c
@@ -156,7 +156,7 @@ static void __init of_unittest_dynamic(void)
156 } 156 }
157 157
158 /* Array of 4 properties for the purpose of testing */ 158 /* Array of 4 properties for the purpose of testing */
159 prop = kzalloc(sizeof(*prop) * 4, GFP_KERNEL); 159 prop = kcalloc(4, sizeof(*prop), GFP_KERNEL);
160 if (!prop) { 160 if (!prop) {
161 unittest(0, "kzalloc() failed\n"); 161 unittest(0, "kzalloc() failed\n");
162 return; 162 return;
diff --git a/drivers/opp/ti-opp-supply.c b/drivers/opp/ti-opp-supply.c
index 370eff3acd8a..9e5a9a3112c9 100644
--- a/drivers/opp/ti-opp-supply.c
+++ b/drivers/opp/ti-opp-supply.c
@@ -122,8 +122,8 @@ static int _store_optimized_voltages(struct device *dev,
122 goto out; 122 goto out;
123 } 123 }
124 124
125 table = kzalloc(sizeof(*data->vdd_table) * 125 table = kcalloc(data->num_vdd_table, sizeof(*data->vdd_table),
126 data->num_vdd_table, GFP_KERNEL); 126 GFP_KERNEL);
127 if (!table) { 127 if (!table) {
128 ret = -ENOMEM; 128 ret = -ENOMEM;
129 goto out; 129 goto out;
diff --git a/drivers/oprofile/event_buffer.c b/drivers/oprofile/event_buffer.c
index 32888f2bd1a9..12ea4a4ad607 100644
--- a/drivers/oprofile/event_buffer.c
+++ b/drivers/oprofile/event_buffer.c
@@ -91,7 +91,7 @@ int alloc_event_buffer(void)
91 return -EINVAL; 91 return -EINVAL;
92 92
93 buffer_pos = 0; 93 buffer_pos = 0;
94 event_buffer = vmalloc(sizeof(unsigned long) * buffer_size); 94 event_buffer = vmalloc(array_size(buffer_size, sizeof(unsigned long)));
95 if (!event_buffer) 95 if (!event_buffer)
96 return -ENOMEM; 96 return -ENOMEM;
97 97
diff --git a/drivers/pci/controller/dwc/pci-dra7xx.c b/drivers/pci/controller/dwc/pci-dra7xx.c
index cfaeef81d868..345aab56ce8b 100644
--- a/drivers/pci/controller/dwc/pci-dra7xx.c
+++ b/drivers/pci/controller/dwc/pci-dra7xx.c
@@ -639,11 +639,11 @@ static int __init dra7xx_pcie_probe(struct platform_device *pdev)
639 return phy_count; 639 return phy_count;
640 } 640 }
641 641
642 phy = devm_kzalloc(dev, sizeof(*phy) * phy_count, GFP_KERNEL); 642 phy = devm_kcalloc(dev, phy_count, sizeof(*phy), GFP_KERNEL);
643 if (!phy) 643 if (!phy)
644 return -ENOMEM; 644 return -ENOMEM;
645 645
646 link = devm_kzalloc(dev, sizeof(*link) * phy_count, GFP_KERNEL); 646 link = devm_kcalloc(dev, phy_count, sizeof(*link), GFP_KERNEL);
647 if (!link) 647 if (!link)
648 return -ENOMEM; 648 return -ENOMEM;
649 649
diff --git a/drivers/pci/controller/dwc/pcie-designware-ep.c b/drivers/pci/controller/dwc/pcie-designware-ep.c
index 1eec4415a77f..8650416f6f9e 100644
--- a/drivers/pci/controller/dwc/pcie-designware-ep.c
+++ b/drivers/pci/controller/dwc/pcie-designware-ep.c
@@ -366,19 +366,21 @@ int dw_pcie_ep_init(struct dw_pcie_ep *ep)
366 return -EINVAL; 366 return -EINVAL;
367 } 367 }
368 368
369 ep->ib_window_map = devm_kzalloc(dev, sizeof(long) * 369 ep->ib_window_map = devm_kcalloc(dev,
370 BITS_TO_LONGS(ep->num_ib_windows), 370 BITS_TO_LONGS(ep->num_ib_windows),
371 sizeof(long),
371 GFP_KERNEL); 372 GFP_KERNEL);
372 if (!ep->ib_window_map) 373 if (!ep->ib_window_map)
373 return -ENOMEM; 374 return -ENOMEM;
374 375
375 ep->ob_window_map = devm_kzalloc(dev, sizeof(long) * 376 ep->ob_window_map = devm_kcalloc(dev,
376 BITS_TO_LONGS(ep->num_ob_windows), 377 BITS_TO_LONGS(ep->num_ob_windows),
378 sizeof(long),
377 GFP_KERNEL); 379 GFP_KERNEL);
378 if (!ep->ob_window_map) 380 if (!ep->ob_window_map)
379 return -ENOMEM; 381 return -ENOMEM;
380 382
381 addr = devm_kzalloc(dev, sizeof(phys_addr_t) * ep->num_ob_windows, 383 addr = devm_kcalloc(dev, ep->num_ob_windows, sizeof(phys_addr_t),
382 GFP_KERNEL); 384 GFP_KERNEL);
383 if (!addr) 385 if (!addr)
384 return -ENOMEM; 386 return -ENOMEM;
diff --git a/drivers/pci/controller/pcie-cadence-ep.c b/drivers/pci/controller/pcie-cadence-ep.c
index 3d8283e450a9..e3fe4124e3af 100644
--- a/drivers/pci/controller/pcie-cadence-ep.c
+++ b/drivers/pci/controller/pcie-cadence-ep.c
@@ -467,7 +467,8 @@ static int cdns_pcie_ep_probe(struct platform_device *pdev)
467 dev_err(dev, "missing \"cdns,max-outbound-regions\"\n"); 467 dev_err(dev, "missing \"cdns,max-outbound-regions\"\n");
468 return ret; 468 return ret;
469 } 469 }
470 ep->ob_addr = devm_kzalloc(dev, ep->max_regions * sizeof(*ep->ob_addr), 470 ep->ob_addr = devm_kcalloc(dev,
471 ep->max_regions, sizeof(*ep->ob_addr),
471 GFP_KERNEL); 472 GFP_KERNEL);
472 if (!ep->ob_addr) 473 if (!ep->ob_addr)
473 return -ENOMEM; 474 return -ENOMEM;
diff --git a/drivers/pci/controller/pcie-rockchip-ep.c b/drivers/pci/controller/pcie-rockchip-ep.c
index fc267a49a932..6beba8ed7b84 100644
--- a/drivers/pci/controller/pcie-rockchip-ep.c
+++ b/drivers/pci/controller/pcie-rockchip-ep.c
@@ -593,7 +593,7 @@ static int rockchip_pcie_ep_probe(struct platform_device *pdev)
593 PCIE_CLIENT_CONFIG); 593 PCIE_CLIENT_CONFIG);
594 594
595 max_regions = ep->max_regions; 595 max_regions = ep->max_regions;
596 ep->ob_addr = devm_kzalloc(dev, max_regions * sizeof(*ep->ob_addr), 596 ep->ob_addr = devm_kcalloc(dev, max_regions, sizeof(*ep->ob_addr),
597 GFP_KERNEL); 597 GFP_KERNEL);
598 598
599 if (!ep->ob_addr) { 599 if (!ep->ob_addr) {
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
index f45b74fcc059..4d88afdfc843 100644
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -474,7 +474,7 @@ static int populate_msi_sysfs(struct pci_dev *pdev)
474 return 0; 474 return 0;
475 475
476 /* Dynamically create the MSI attributes for the PCI device */ 476 /* Dynamically create the MSI attributes for the PCI device */
477 msi_attrs = kzalloc(sizeof(void *) * (num_msi + 1), GFP_KERNEL); 477 msi_attrs = kcalloc(num_msi + 1, sizeof(void *), GFP_KERNEL);
478 if (!msi_attrs) 478 if (!msi_attrs)
479 return -ENOMEM; 479 return -ENOMEM;
480 for_each_pci_msi_entry(entry, pdev) { 480 for_each_pci_msi_entry(entry, pdev) {
@@ -501,7 +501,7 @@ static int populate_msi_sysfs(struct pci_dev *pdev)
501 msi_irq_group->name = "msi_irqs"; 501 msi_irq_group->name = "msi_irqs";
502 msi_irq_group->attrs = msi_attrs; 502 msi_irq_group->attrs = msi_attrs;
503 503
504 msi_irq_groups = kzalloc(sizeof(void *) * 2, GFP_KERNEL); 504 msi_irq_groups = kcalloc(2, sizeof(void *), GFP_KERNEL);
505 if (!msi_irq_groups) 505 if (!msi_irq_groups)
506 goto error_irq_group; 506 goto error_irq_group;
507 msi_irq_groups[0] = msi_irq_group; 507 msi_irq_groups[0] = msi_irq_group;
diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
index 788a200fb2dc..0c4653c1d2ce 100644
--- a/drivers/pci/pci-sysfs.c
+++ b/drivers/pci/pci-sysfs.c
@@ -1076,7 +1076,7 @@ void pci_create_legacy_files(struct pci_bus *b)
1076{ 1076{
1077 int error; 1077 int error;
1078 1078
1079 b->legacy_io = kzalloc(sizeof(struct bin_attribute) * 2, 1079 b->legacy_io = kcalloc(2, sizeof(struct bin_attribute),
1080 GFP_ATOMIC); 1080 GFP_ATOMIC);
1081 if (!b->legacy_io) 1081 if (!b->legacy_io)
1082 goto kzalloc_err; 1082 goto kzalloc_err;
diff --git a/drivers/pcmcia/cistpl.c b/drivers/pcmcia/cistpl.c
index 102646fedb56..ac0672b8dfca 100644
--- a/drivers/pcmcia/cistpl.c
+++ b/drivers/pcmcia/cistpl.c
@@ -1481,11 +1481,11 @@ static ssize_t pccard_extract_cis(struct pcmcia_socket *s, char *buf,
1481 u_char *tuplebuffer; 1481 u_char *tuplebuffer;
1482 u_char *tempbuffer; 1482 u_char *tempbuffer;
1483 1483
1484 tuplebuffer = kmalloc(sizeof(u_char) * 256, GFP_KERNEL); 1484 tuplebuffer = kmalloc_array(256, sizeof(u_char), GFP_KERNEL);
1485 if (!tuplebuffer) 1485 if (!tuplebuffer)
1486 return -ENOMEM; 1486 return -ENOMEM;
1487 1487
1488 tempbuffer = kmalloc(sizeof(u_char) * 258, GFP_KERNEL); 1488 tempbuffer = kmalloc_array(258, sizeof(u_char), GFP_KERNEL);
1489 if (!tempbuffer) { 1489 if (!tempbuffer) {
1490 ret = -ENOMEM; 1490 ret = -ENOMEM;
1491 goto free_tuple; 1491 goto free_tuple;
diff --git a/drivers/pcmcia/pd6729.c b/drivers/pcmcia/pd6729.c
index 959ae3e65ef8..f0af9985ca09 100644
--- a/drivers/pcmcia/pd6729.c
+++ b/drivers/pcmcia/pd6729.c
@@ -628,7 +628,7 @@ static int pd6729_pci_probe(struct pci_dev *dev,
628 char configbyte; 628 char configbyte;
629 struct pd6729_socket *socket; 629 struct pd6729_socket *socket;
630 630
631 socket = kzalloc(sizeof(struct pd6729_socket) * MAX_SOCKETS, 631 socket = kcalloc(MAX_SOCKETS, sizeof(struct pd6729_socket),
632 GFP_KERNEL); 632 GFP_KERNEL);
633 if (!socket) { 633 if (!socket) {
634 dev_warn(&dev->dev, "failed to kzalloc socket.\n"); 634 dev_warn(&dev->dev, "failed to kzalloc socket.\n");
diff --git a/drivers/pinctrl/bcm/pinctrl-bcm2835.c b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
index 136ccaf53df8..fa530913a2c8 100644
--- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
+++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
@@ -771,8 +771,8 @@ static int bcm2835_pctl_dt_node_to_map(struct pinctrl_dev *pctldev,
771 maps_per_pin++; 771 maps_per_pin++;
772 if (num_pulls) 772 if (num_pulls)
773 maps_per_pin++; 773 maps_per_pin++;
774 cur_map = maps = kzalloc(num_pins * maps_per_pin * sizeof(*maps), 774 cur_map = maps = kcalloc(num_pins * maps_per_pin, sizeof(*maps),
775 GFP_KERNEL); 775 GFP_KERNEL);
776 if (!maps) 776 if (!maps)
777 return -ENOMEM; 777 return -ENOMEM;
778 778
diff --git a/drivers/pinctrl/berlin/berlin.c b/drivers/pinctrl/berlin/berlin.c
index a620a8e8fa78..d6d183e9db17 100644
--- a/drivers/pinctrl/berlin/berlin.c
+++ b/drivers/pinctrl/berlin/berlin.c
@@ -216,8 +216,9 @@ static int berlin_pinctrl_build_state(struct platform_device *pdev)
216 } 216 }
217 217
218 /* we will reallocate later */ 218 /* we will reallocate later */
219 pctrl->functions = devm_kzalloc(&pdev->dev, 219 pctrl->functions = devm_kcalloc(&pdev->dev,
220 max_functions * sizeof(*pctrl->functions), 220 max_functions,
221 sizeof(*pctrl->functions),
221 GFP_KERNEL); 222 GFP_KERNEL);
222 if (!pctrl->functions) 223 if (!pctrl->functions)
223 return -ENOMEM; 224 return -ENOMEM;
@@ -261,8 +262,9 @@ static int berlin_pinctrl_build_state(struct platform_device *pdev)
261 262
262 if (!function->groups) { 263 if (!function->groups) {
263 function->groups = 264 function->groups =
264 devm_kzalloc(&pdev->dev, 265 devm_kcalloc(&pdev->dev,
265 function->ngroups * sizeof(char *), 266 function->ngroups,
267 sizeof(char *),
266 GFP_KERNEL); 268 GFP_KERNEL);
267 269
268 if (!function->groups) 270 if (!function->groups)
diff --git a/drivers/pinctrl/freescale/pinctrl-imx.c b/drivers/pinctrl/freescale/pinctrl-imx.c
index e582a21cfe54..1c6bb15579e1 100644
--- a/drivers/pinctrl/freescale/pinctrl-imx.c
+++ b/drivers/pinctrl/freescale/pinctrl-imx.c
@@ -81,7 +81,8 @@ static int imx_dt_node_to_map(struct pinctrl_dev *pctldev,
81 map_num++; 81 map_num++;
82 } 82 }
83 83
84 new_map = kmalloc(sizeof(struct pinctrl_map) * map_num, GFP_KERNEL); 84 new_map = kmalloc_array(map_num, sizeof(struct pinctrl_map),
85 GFP_KERNEL);
85 if (!new_map) 86 if (!new_map)
86 return -ENOMEM; 87 return -ENOMEM;
87 88
@@ -476,10 +477,12 @@ static int imx_pinctrl_parse_groups(struct device_node *np,
476 config = imx_pinconf_parse_generic_config(np, ipctl); 477 config = imx_pinconf_parse_generic_config(np, ipctl);
477 478
478 grp->num_pins = size / pin_size; 479 grp->num_pins = size / pin_size;
479 grp->data = devm_kzalloc(ipctl->dev, grp->num_pins * 480 grp->data = devm_kcalloc(ipctl->dev,
480 sizeof(struct imx_pin), GFP_KERNEL); 481 grp->num_pins, sizeof(struct imx_pin),
481 grp->pins = devm_kzalloc(ipctl->dev, grp->num_pins * 482 GFP_KERNEL);
482 sizeof(unsigned int), GFP_KERNEL); 483 grp->pins = devm_kcalloc(ipctl->dev,
484 grp->num_pins, sizeof(unsigned int),
485 GFP_KERNEL);
483 if (!grp->pins || !grp->data) 486 if (!grp->pins || !grp->data)
484 return -ENOMEM; 487 return -ENOMEM;
485 488
@@ -697,8 +700,9 @@ int imx_pinctrl_probe(struct platform_device *pdev,
697 if (!ipctl) 700 if (!ipctl)
698 return -ENOMEM; 701 return -ENOMEM;
699 702
700 ipctl->pin_regs = devm_kmalloc(&pdev->dev, sizeof(*ipctl->pin_regs) * 703 ipctl->pin_regs = devm_kmalloc_array(&pdev->dev,
701 info->npins, GFP_KERNEL); 704 info->npins, sizeof(*ipctl->pin_regs),
705 GFP_KERNEL);
702 if (!ipctl->pin_regs) 706 if (!ipctl->pin_regs)
703 return -ENOMEM; 707 return -ENOMEM;
704 708
diff --git a/drivers/pinctrl/freescale/pinctrl-imx1-core.c b/drivers/pinctrl/freescale/pinctrl-imx1-core.c
index 5af89de0ff02..c3bdd90b1422 100644
--- a/drivers/pinctrl/freescale/pinctrl-imx1-core.c
+++ b/drivers/pinctrl/freescale/pinctrl-imx1-core.c
@@ -241,7 +241,8 @@ static int imx1_dt_node_to_map(struct pinctrl_dev *pctldev,
241 for (i = 0; i < grp->npins; i++) 241 for (i = 0; i < grp->npins; i++)
242 map_num++; 242 map_num++;
243 243
244 new_map = kmalloc(sizeof(struct pinctrl_map) * map_num, GFP_KERNEL); 244 new_map = kmalloc_array(map_num, sizeof(struct pinctrl_map),
245 GFP_KERNEL);
245 if (!new_map) 246 if (!new_map)
246 return -ENOMEM; 247 return -ENOMEM;
247 248
@@ -482,10 +483,10 @@ static int imx1_pinctrl_parse_groups(struct device_node *np,
482 } 483 }
483 484
484 grp->npins = size / 12; 485 grp->npins = size / 12;
485 grp->pins = devm_kzalloc(info->dev, 486 grp->pins = devm_kcalloc(info->dev,
486 grp->npins * sizeof(struct imx1_pin), GFP_KERNEL); 487 grp->npins, sizeof(struct imx1_pin), GFP_KERNEL);
487 grp->pin_ids = devm_kzalloc(info->dev, 488 grp->pin_ids = devm_kcalloc(info->dev,
488 grp->npins * sizeof(unsigned int), GFP_KERNEL); 489 grp->npins, sizeof(unsigned int), GFP_KERNEL);
489 490
490 if (!grp->pins || !grp->pin_ids) 491 if (!grp->pins || !grp->pin_ids)
491 return -ENOMEM; 492 return -ENOMEM;
@@ -522,8 +523,8 @@ static int imx1_pinctrl_parse_functions(struct device_node *np,
522 if (func->num_groups == 0) 523 if (func->num_groups == 0)
523 return -EINVAL; 524 return -EINVAL;
524 525
525 func->groups = devm_kzalloc(info->dev, 526 func->groups = devm_kcalloc(info->dev,
526 func->num_groups * sizeof(char *), GFP_KERNEL); 527 func->num_groups, sizeof(char *), GFP_KERNEL);
527 528
528 if (!func->groups) 529 if (!func->groups)
529 return -ENOMEM; 530 return -ENOMEM;
@@ -565,12 +566,12 @@ static int imx1_pinctrl_parse_dt(struct platform_device *pdev,
565 } 566 }
566 567
567 info->nfunctions = nfuncs; 568 info->nfunctions = nfuncs;
568 info->functions = devm_kzalloc(&pdev->dev, 569 info->functions = devm_kcalloc(&pdev->dev,
569 nfuncs * sizeof(struct imx1_pmx_func), GFP_KERNEL); 570 nfuncs, sizeof(struct imx1_pmx_func), GFP_KERNEL);
570 571
571 info->ngroups = ngroups; 572 info->ngroups = ngroups;
572 info->groups = devm_kzalloc(&pdev->dev, 573 info->groups = devm_kcalloc(&pdev->dev,
573 ngroups * sizeof(struct imx1_pin_group), GFP_KERNEL); 574 ngroups, sizeof(struct imx1_pin_group), GFP_KERNEL);
574 575
575 576
576 if (!info->functions || !info->groups) 577 if (!info->functions || !info->groups)
diff --git a/drivers/pinctrl/freescale/pinctrl-mxs.c b/drivers/pinctrl/freescale/pinctrl-mxs.c
index 594f3e5ce9a9..a612e46ca51c 100644
--- a/drivers/pinctrl/freescale/pinctrl-mxs.c
+++ b/drivers/pinctrl/freescale/pinctrl-mxs.c
@@ -89,7 +89,7 @@ static int mxs_dt_node_to_map(struct pinctrl_dev *pctldev,
89 if (!purecfg && config) 89 if (!purecfg && config)
90 new_num = 2; 90 new_num = 2;
91 91
92 new_map = kzalloc(sizeof(*new_map) * new_num, GFP_KERNEL); 92 new_map = kcalloc(new_num, sizeof(*new_map), GFP_KERNEL);
93 if (!new_map) 93 if (!new_map)
94 return -ENOMEM; 94 return -ENOMEM;
95 95
@@ -370,12 +370,12 @@ static int mxs_pinctrl_parse_group(struct platform_device *pdev,
370 return -EINVAL; 370 return -EINVAL;
371 g->npins = length / sizeof(u32); 371 g->npins = length / sizeof(u32);
372 372
373 g->pins = devm_kzalloc(&pdev->dev, g->npins * sizeof(*g->pins), 373 g->pins = devm_kcalloc(&pdev->dev, g->npins, sizeof(*g->pins),
374 GFP_KERNEL); 374 GFP_KERNEL);
375 if (!g->pins) 375 if (!g->pins)
376 return -ENOMEM; 376 return -ENOMEM;
377 377
378 g->muxsel = devm_kzalloc(&pdev->dev, g->npins * sizeof(*g->muxsel), 378 g->muxsel = devm_kcalloc(&pdev->dev, g->npins, sizeof(*g->muxsel),
379 GFP_KERNEL); 379 GFP_KERNEL);
380 if (!g->muxsel) 380 if (!g->muxsel)
381 return -ENOMEM; 381 return -ENOMEM;
@@ -426,13 +426,16 @@ static int mxs_pinctrl_probe_dt(struct platform_device *pdev,
426 } 426 }
427 } 427 }
428 428
429 soc->functions = devm_kzalloc(&pdev->dev, soc->nfunctions * 429 soc->functions = devm_kcalloc(&pdev->dev,
430 sizeof(*soc->functions), GFP_KERNEL); 430 soc->nfunctions,
431 sizeof(*soc->functions),
432 GFP_KERNEL);
431 if (!soc->functions) 433 if (!soc->functions)
432 return -ENOMEM; 434 return -ENOMEM;
433 435
434 soc->groups = devm_kzalloc(&pdev->dev, soc->ngroups * 436 soc->groups = devm_kcalloc(&pdev->dev,
435 sizeof(*soc->groups), GFP_KERNEL); 437 soc->ngroups, sizeof(*soc->groups),
438 GFP_KERNEL);
436 if (!soc->groups) 439 if (!soc->groups)
437 return -ENOMEM; 440 return -ENOMEM;
438 441
@@ -492,7 +495,8 @@ static int mxs_pinctrl_probe_dt(struct platform_device *pdev,
492 495
493 if (strcmp(fn, child->name)) { 496 if (strcmp(fn, child->name)) {
494 f = &soc->functions[idxf++]; 497 f = &soc->functions[idxf++];
495 f->groups = devm_kzalloc(&pdev->dev, f->ngroups * 498 f->groups = devm_kcalloc(&pdev->dev,
499 f->ngroups,
496 sizeof(*f->groups), 500 sizeof(*f->groups),
497 GFP_KERNEL); 501 GFP_KERNEL);
498 if (!f->groups) 502 if (!f->groups)
diff --git a/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c b/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c
index 674ffdf8103c..53cf800688e9 100644
--- a/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c
+++ b/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c
@@ -856,9 +856,10 @@ static int armada_37xx_fill_group(struct armada_37xx_pinctrl *info)
856 struct armada_37xx_pin_group *grp = &info->groups[n]; 856 struct armada_37xx_pin_group *grp = &info->groups[n];
857 int i, j, f; 857 int i, j, f;
858 858
859 grp->pins = devm_kzalloc(info->dev, 859 grp->pins = devm_kcalloc(info->dev,
860 (grp->npins + grp->extra_npins) * 860 grp->npins + grp->extra_npins,
861 sizeof(*grp->pins), GFP_KERNEL); 861 sizeof(*grp->pins),
862 GFP_KERNEL);
862 if (!grp->pins) 863 if (!grp->pins)
863 return -ENOMEM; 864 return -ENOMEM;
864 865
@@ -908,7 +909,8 @@ static int armada_37xx_fill_func(struct armada_37xx_pinctrl *info)
908 const char **groups; 909 const char **groups;
909 int g; 910 int g;
910 911
911 funcs[n].groups = devm_kzalloc(info->dev, funcs[n].ngroups * 912 funcs[n].groups = devm_kcalloc(info->dev,
913 funcs[n].ngroups,
912 sizeof(*(funcs[n].groups)), 914 sizeof(*(funcs[n].groups)),
913 GFP_KERNEL); 915 GFP_KERNEL);
914 if (!funcs[n].groups) 916 if (!funcs[n].groups)
@@ -948,8 +950,9 @@ static int armada_37xx_pinctrl_register(struct platform_device *pdev,
948 ctrldesc->pmxops = &armada_37xx_pmx_ops; 950 ctrldesc->pmxops = &armada_37xx_pmx_ops;
949 ctrldesc->confops = &armada_37xx_pinconf_ops; 951 ctrldesc->confops = &armada_37xx_pinconf_ops;
950 952
951 pindesc = devm_kzalloc(&pdev->dev, sizeof(*pindesc) * 953 pindesc = devm_kcalloc(&pdev->dev,
952 pin_data->nr_pins, GFP_KERNEL); 954 pin_data->nr_pins, sizeof(*pindesc),
955 GFP_KERNEL);
953 if (!pindesc) 956 if (!pindesc)
954 return -ENOMEM; 957 return -ENOMEM;
955 958
@@ -968,8 +971,10 @@ static int armada_37xx_pinctrl_register(struct platform_device *pdev,
968 * we allocate functions for number of pins and hope there are 971 * we allocate functions for number of pins and hope there are
969 * fewer unique functions than pins available 972 * fewer unique functions than pins available
970 */ 973 */
971 info->funcs = devm_kzalloc(&pdev->dev, pin_data->nr_pins * 974 info->funcs = devm_kcalloc(&pdev->dev,
972 sizeof(struct armada_37xx_pmx_func), GFP_KERNEL); 975 pin_data->nr_pins,
976 sizeof(struct armada_37xx_pmx_func),
977 GFP_KERNEL);
973 if (!info->funcs) 978 if (!info->funcs)
974 return -ENOMEM; 979 return -ENOMEM;
975 980
diff --git a/drivers/pinctrl/mvebu/pinctrl-armada-xp.c b/drivers/pinctrl/mvebu/pinctrl-armada-xp.c
index 5e828468e43d..43231fd065a1 100644
--- a/drivers/pinctrl/mvebu/pinctrl-armada-xp.c
+++ b/drivers/pinctrl/mvebu/pinctrl-armada-xp.c
@@ -630,8 +630,8 @@ static int armada_xp_pinctrl_probe(struct platform_device *pdev)
630 630
631 nregs = DIV_ROUND_UP(soc->nmodes, MVEBU_MPPS_PER_REG); 631 nregs = DIV_ROUND_UP(soc->nmodes, MVEBU_MPPS_PER_REG);
632 632
633 mpp_saved_regs = devm_kmalloc(&pdev->dev, nregs * sizeof(u32), 633 mpp_saved_regs = devm_kmalloc_array(&pdev->dev, nregs, sizeof(u32),
634 GFP_KERNEL); 634 GFP_KERNEL);
635 if (!mpp_saved_regs) 635 if (!mpp_saved_regs)
636 return -ENOMEM; 636 return -ENOMEM;
637 637
diff --git a/drivers/pinctrl/mvebu/pinctrl-mvebu.c b/drivers/pinctrl/mvebu/pinctrl-mvebu.c
index 9e05cfaf75f0..d7ec7119701b 100644
--- a/drivers/pinctrl/mvebu/pinctrl-mvebu.c
+++ b/drivers/pinctrl/mvebu/pinctrl-mvebu.c
@@ -501,8 +501,9 @@ static int mvebu_pinctrl_build_functions(struct platform_device *pdev,
501 501
502 /* we allocate functions for number of pins and hope 502 /* we allocate functions for number of pins and hope
503 * there are fewer unique functions than pins available */ 503 * there are fewer unique functions than pins available */
504 funcs = devm_kzalloc(&pdev->dev, funcsize * 504 funcs = devm_kcalloc(&pdev->dev,
505 sizeof(struct mvebu_pinctrl_function), GFP_KERNEL); 505 funcsize, sizeof(struct mvebu_pinctrl_function),
506 GFP_KERNEL);
506 if (!funcs) 507 if (!funcs)
507 return -ENOMEM; 508 return -ENOMEM;
508 509
@@ -549,8 +550,9 @@ static int mvebu_pinctrl_build_functions(struct platform_device *pdev,
549 550
550 /* allocate group name array if not done already */ 551 /* allocate group name array if not done already */
551 if (!f->groups) { 552 if (!f->groups) {
552 f->groups = devm_kzalloc(&pdev->dev, 553 f->groups = devm_kcalloc(&pdev->dev,
553 f->num_groups * sizeof(char *), 554 f->num_groups,
555 sizeof(char *),
554 GFP_KERNEL); 556 GFP_KERNEL);
555 if (!f->groups) 557 if (!f->groups)
556 return -ENOMEM; 558 return -ENOMEM;
@@ -622,8 +624,10 @@ int mvebu_pinctrl_probe(struct platform_device *pdev)
622 } 624 }
623 } 625 }
624 626
625 pdesc = devm_kzalloc(&pdev->dev, pctl->desc.npins * 627 pdesc = devm_kcalloc(&pdev->dev,
626 sizeof(struct pinctrl_pin_desc), GFP_KERNEL); 628 pctl->desc.npins,
629 sizeof(struct pinctrl_pin_desc),
630 GFP_KERNEL);
627 if (!pdesc) 631 if (!pdesc)
628 return -ENOMEM; 632 return -ENOMEM;
629 633
diff --git a/drivers/pinctrl/pinctrl-at91-pio4.c b/drivers/pinctrl/pinctrl-at91-pio4.c
index bafb3d40545e..67e4d9ffa6b1 100644
--- a/drivers/pinctrl/pinctrl-at91-pio4.c
+++ b/drivers/pinctrl/pinctrl-at91-pio4.c
@@ -945,27 +945,30 @@ static int atmel_pinctrl_probe(struct platform_device *pdev)
945 return PTR_ERR(atmel_pioctrl->clk); 945 return PTR_ERR(atmel_pioctrl->clk);
946 } 946 }
947 947
948 atmel_pioctrl->pins = devm_kzalloc(dev, sizeof(*atmel_pioctrl->pins) 948 atmel_pioctrl->pins = devm_kcalloc(dev,
949 * atmel_pioctrl->npins, GFP_KERNEL); 949 atmel_pioctrl->npins,
950 sizeof(*atmel_pioctrl->pins),
951 GFP_KERNEL);
950 if (!atmel_pioctrl->pins) 952 if (!atmel_pioctrl->pins)
951 return -ENOMEM; 953 return -ENOMEM;
952 954
953 pin_desc = devm_kzalloc(dev, sizeof(*pin_desc) 955 pin_desc = devm_kcalloc(dev, atmel_pioctrl->npins, sizeof(*pin_desc),
954 * atmel_pioctrl->npins, GFP_KERNEL); 956 GFP_KERNEL);
955 if (!pin_desc) 957 if (!pin_desc)
956 return -ENOMEM; 958 return -ENOMEM;
957 atmel_pinctrl_desc.pins = pin_desc; 959 atmel_pinctrl_desc.pins = pin_desc;
958 atmel_pinctrl_desc.npins = atmel_pioctrl->npins; 960 atmel_pinctrl_desc.npins = atmel_pioctrl->npins;
959 961
960 /* One pin is one group since a pin can achieve all functions. */ 962 /* One pin is one group since a pin can achieve all functions. */
961 group_names = devm_kzalloc(dev, sizeof(*group_names) 963 group_names = devm_kcalloc(dev,
962 * atmel_pioctrl->npins, GFP_KERNEL); 964 atmel_pioctrl->npins, sizeof(*group_names),
965 GFP_KERNEL);
963 if (!group_names) 966 if (!group_names)
964 return -ENOMEM; 967 return -ENOMEM;
965 atmel_pioctrl->group_names = group_names; 968 atmel_pioctrl->group_names = group_names;
966 969
967 atmel_pioctrl->groups = devm_kzalloc(&pdev->dev, 970 atmel_pioctrl->groups = devm_kcalloc(&pdev->dev,
968 sizeof(*atmel_pioctrl->groups) * atmel_pioctrl->npins, 971 atmel_pioctrl->npins, sizeof(*atmel_pioctrl->groups),
969 GFP_KERNEL); 972 GFP_KERNEL);
970 if (!atmel_pioctrl->groups) 973 if (!atmel_pioctrl->groups)
971 return -ENOMEM; 974 return -ENOMEM;
@@ -1001,20 +1004,24 @@ static int atmel_pinctrl_probe(struct platform_device *pdev)
1001 atmel_pioctrl->gpio_chip->parent = dev; 1004 atmel_pioctrl->gpio_chip->parent = dev;
1002 atmel_pioctrl->gpio_chip->names = atmel_pioctrl->group_names; 1005 atmel_pioctrl->gpio_chip->names = atmel_pioctrl->group_names;
1003 1006
1004 atmel_pioctrl->pm_wakeup_sources = devm_kzalloc(dev, 1007 atmel_pioctrl->pm_wakeup_sources = devm_kcalloc(dev,
1005 sizeof(*atmel_pioctrl->pm_wakeup_sources) 1008 atmel_pioctrl->nbanks,
1006 * atmel_pioctrl->nbanks, GFP_KERNEL); 1009 sizeof(*atmel_pioctrl->pm_wakeup_sources),
1010 GFP_KERNEL);
1007 if (!atmel_pioctrl->pm_wakeup_sources) 1011 if (!atmel_pioctrl->pm_wakeup_sources)
1008 return -ENOMEM; 1012 return -ENOMEM;
1009 1013
1010 atmel_pioctrl->pm_suspend_backup = devm_kzalloc(dev, 1014 atmel_pioctrl->pm_suspend_backup = devm_kcalloc(dev,
1011 sizeof(*atmel_pioctrl->pm_suspend_backup) 1015 atmel_pioctrl->nbanks,
1012 * atmel_pioctrl->nbanks, GFP_KERNEL); 1016 sizeof(*atmel_pioctrl->pm_suspend_backup),
1017 GFP_KERNEL);
1013 if (!atmel_pioctrl->pm_suspend_backup) 1018 if (!atmel_pioctrl->pm_suspend_backup)
1014 return -ENOMEM; 1019 return -ENOMEM;
1015 1020
1016 atmel_pioctrl->irqs = devm_kzalloc(dev, sizeof(*atmel_pioctrl->irqs) 1021 atmel_pioctrl->irqs = devm_kcalloc(dev,
1017 * atmel_pioctrl->nbanks, GFP_KERNEL); 1022 atmel_pioctrl->nbanks,
1023 sizeof(*atmel_pioctrl->irqs),
1024 GFP_KERNEL);
1018 if (!atmel_pioctrl->irqs) 1025 if (!atmel_pioctrl->irqs)
1019 return -ENOMEM; 1026 return -ENOMEM;
1020 1027
diff --git a/drivers/pinctrl/pinctrl-at91.c b/drivers/pinctrl/pinctrl-at91.c
index 297f1d161211..50f0ec42c637 100644
--- a/drivers/pinctrl/pinctrl-at91.c
+++ b/drivers/pinctrl/pinctrl-at91.c
@@ -269,7 +269,8 @@ static int at91_dt_node_to_map(struct pinctrl_dev *pctldev,
269 } 269 }
270 270
271 map_num += grp->npins; 271 map_num += grp->npins;
272 new_map = devm_kzalloc(pctldev->dev, sizeof(*new_map) * map_num, GFP_KERNEL); 272 new_map = devm_kcalloc(pctldev->dev, map_num, sizeof(*new_map),
273 GFP_KERNEL);
273 if (!new_map) 274 if (!new_map)
274 return -ENOMEM; 275 return -ENOMEM;
275 276
@@ -1049,7 +1050,8 @@ static int at91_pinctrl_mux_mask(struct at91_pinctrl *info,
1049 } 1050 }
1050 info->nmux = size / gpio_banks; 1051 info->nmux = size / gpio_banks;
1051 1052
1052 info->mux_mask = devm_kzalloc(info->dev, sizeof(u32) * size, GFP_KERNEL); 1053 info->mux_mask = devm_kcalloc(info->dev, size, sizeof(u32),
1054 GFP_KERNEL);
1053 if (!info->mux_mask) 1055 if (!info->mux_mask)
1054 return -ENOMEM; 1056 return -ENOMEM;
1055 1057
@@ -1087,10 +1089,12 @@ static int at91_pinctrl_parse_groups(struct device_node *np,
1087 } 1089 }
1088 1090
1089 grp->npins = size / 4; 1091 grp->npins = size / 4;
1090 pin = grp->pins_conf = devm_kzalloc(info->dev, grp->npins * sizeof(struct at91_pmx_pin), 1092 pin = grp->pins_conf = devm_kcalloc(info->dev,
1091 GFP_KERNEL); 1093 grp->npins,
1092 grp->pins = devm_kzalloc(info->dev, grp->npins * sizeof(unsigned int), 1094 sizeof(struct at91_pmx_pin),
1093 GFP_KERNEL); 1095 GFP_KERNEL);
1096 grp->pins = devm_kcalloc(info->dev, grp->npins, sizeof(unsigned int),
1097 GFP_KERNEL);
1094 if (!grp->pins_conf || !grp->pins) 1098 if (!grp->pins_conf || !grp->pins)
1095 return -ENOMEM; 1099 return -ENOMEM;
1096 1100
@@ -1129,8 +1133,8 @@ static int at91_pinctrl_parse_functions(struct device_node *np,
1129 dev_err(info->dev, "no groups defined\n"); 1133 dev_err(info->dev, "no groups defined\n");
1130 return -EINVAL; 1134 return -EINVAL;
1131 } 1135 }
1132 func->groups = devm_kzalloc(info->dev, 1136 func->groups = devm_kcalloc(info->dev,
1133 func->ngroups * sizeof(char *), GFP_KERNEL); 1137 func->ngroups, sizeof(char *), GFP_KERNEL);
1134 if (!func->groups) 1138 if (!func->groups)
1135 return -ENOMEM; 1139 return -ENOMEM;
1136 1140
@@ -1192,12 +1196,16 @@ static int at91_pinctrl_probe_dt(struct platform_device *pdev,
1192 1196
1193 dev_dbg(&pdev->dev, "nfunctions = %d\n", info->nfunctions); 1197 dev_dbg(&pdev->dev, "nfunctions = %d\n", info->nfunctions);
1194 dev_dbg(&pdev->dev, "ngroups = %d\n", info->ngroups); 1198 dev_dbg(&pdev->dev, "ngroups = %d\n", info->ngroups);
1195 info->functions = devm_kzalloc(&pdev->dev, info->nfunctions * sizeof(struct at91_pmx_func), 1199 info->functions = devm_kcalloc(&pdev->dev,
1200 info->nfunctions,
1201 sizeof(struct at91_pmx_func),
1196 GFP_KERNEL); 1202 GFP_KERNEL);
1197 if (!info->functions) 1203 if (!info->functions)
1198 return -ENOMEM; 1204 return -ENOMEM;
1199 1205
1200 info->groups = devm_kzalloc(&pdev->dev, info->ngroups * sizeof(struct at91_pin_group), 1206 info->groups = devm_kcalloc(&pdev->dev,
1207 info->ngroups,
1208 sizeof(struct at91_pin_group),
1201 GFP_KERNEL); 1209 GFP_KERNEL);
1202 if (!info->groups) 1210 if (!info->groups)
1203 return -ENOMEM; 1211 return -ENOMEM;
@@ -1256,7 +1264,9 @@ static int at91_pinctrl_probe(struct platform_device *pdev)
1256 at91_pinctrl_desc.name = dev_name(&pdev->dev); 1264 at91_pinctrl_desc.name = dev_name(&pdev->dev);
1257 at91_pinctrl_desc.npins = gpio_banks * MAX_NB_GPIO_PER_BANK; 1265 at91_pinctrl_desc.npins = gpio_banks * MAX_NB_GPIO_PER_BANK;
1258 at91_pinctrl_desc.pins = pdesc = 1266 at91_pinctrl_desc.pins = pdesc =
1259 devm_kzalloc(&pdev->dev, sizeof(*pdesc) * at91_pinctrl_desc.npins, GFP_KERNEL); 1267 devm_kcalloc(&pdev->dev,
1268 at91_pinctrl_desc.npins, sizeof(*pdesc),
1269 GFP_KERNEL);
1260 1270
1261 if (!at91_pinctrl_desc.pins) 1271 if (!at91_pinctrl_desc.pins)
1262 return -ENOMEM; 1272 return -ENOMEM;
@@ -1763,7 +1773,7 @@ static int at91_gpio_probe(struct platform_device *pdev)
1763 chip->ngpio = ngpio; 1773 chip->ngpio = ngpio;
1764 } 1774 }
1765 1775
1766 names = devm_kzalloc(&pdev->dev, sizeof(char *) * chip->ngpio, 1776 names = devm_kcalloc(&pdev->dev, chip->ngpio, sizeof(char *),
1767 GFP_KERNEL); 1777 GFP_KERNEL);
1768 1778
1769 if (!names) { 1779 if (!names) {
diff --git a/drivers/pinctrl/pinctrl-axp209.c b/drivers/pinctrl/pinctrl-axp209.c
index 1231bbbfa744..a52779f33ad4 100644
--- a/drivers/pinctrl/pinctrl-axp209.c
+++ b/drivers/pinctrl/pinctrl-axp209.c
@@ -328,7 +328,8 @@ static void axp20x_funcs_groups_from_mask(struct device *dev, unsigned int mask,
328 328
329 func->ngroups = ngroups; 329 func->ngroups = ngroups;
330 if (func->ngroups > 0) { 330 if (func->ngroups > 0) {
331 func->groups = devm_kzalloc(dev, ngroups * sizeof(const char *), 331 func->groups = devm_kcalloc(dev,
332 ngroups, sizeof(const char *),
332 GFP_KERNEL); 333 GFP_KERNEL);
333 group = func->groups; 334 group = func->groups;
334 for_each_set_bit(bit, &mask_cpy, mask_len) { 335 for_each_set_bit(bit, &mask_cpy, mask_len) {
@@ -358,8 +359,8 @@ static void axp20x_build_funcs_groups(struct platform_device *pdev)
358 /* Every pin supports GPIO_OUT and GPIO_IN functions */ 359 /* Every pin supports GPIO_OUT and GPIO_IN functions */
359 for (i = 0; i <= AXP20X_FUNC_GPIO_IN; i++) { 360 for (i = 0; i <= AXP20X_FUNC_GPIO_IN; i++) {
360 pctl->funcs[i].ngroups = npins; 361 pctl->funcs[i].ngroups = npins;
361 pctl->funcs[i].groups = devm_kzalloc(&pdev->dev, 362 pctl->funcs[i].groups = devm_kcalloc(&pdev->dev,
362 npins * sizeof(char *), 363 npins, sizeof(char *),
363 GFP_KERNEL); 364 GFP_KERNEL);
364 for (pin = 0; pin < npins; pin++) 365 for (pin = 0; pin < npins; pin++)
365 pctl->funcs[i].groups[pin] = pctl->desc->pins[pin].name; 366 pctl->funcs[i].groups[pin] = pctl->desc->pins[pin].name;
diff --git a/drivers/pinctrl/pinctrl-digicolor.c b/drivers/pinctrl/pinctrl-digicolor.c
index ce269ced4d49..5353b23f775c 100644
--- a/drivers/pinctrl/pinctrl-digicolor.c
+++ b/drivers/pinctrl/pinctrl-digicolor.c
@@ -291,10 +291,11 @@ static int dc_pinctrl_probe(struct platform_device *pdev)
291 if (IS_ERR(pmap->regs)) 291 if (IS_ERR(pmap->regs))
292 return PTR_ERR(pmap->regs); 292 return PTR_ERR(pmap->regs);
293 293
294 pins = devm_kzalloc(&pdev->dev, sizeof(*pins)*PINS_COUNT, GFP_KERNEL); 294 pins = devm_kcalloc(&pdev->dev, PINS_COUNT, sizeof(*pins),
295 GFP_KERNEL);
295 if (!pins) 296 if (!pins)
296 return -ENOMEM; 297 return -ENOMEM;
297 pin_names = devm_kzalloc(&pdev->dev, name_len * PINS_COUNT, 298 pin_names = devm_kcalloc(&pdev->dev, PINS_COUNT, name_len,
298 GFP_KERNEL); 299 GFP_KERNEL);
299 if (!pin_names) 300 if (!pin_names)
300 return -ENOMEM; 301 return -ENOMEM;
diff --git a/drivers/pinctrl/pinctrl-ingenic.c b/drivers/pinctrl/pinctrl-ingenic.c
index ac38a3f9f86b..a1d7156d0a43 100644
--- a/drivers/pinctrl/pinctrl-ingenic.c
+++ b/drivers/pinctrl/pinctrl-ingenic.c
@@ -770,8 +770,8 @@ static int ingenic_pinctrl_probe(struct platform_device *pdev)
770 pctl_desc->pmxops = &ingenic_pmxops; 770 pctl_desc->pmxops = &ingenic_pmxops;
771 pctl_desc->confops = &ingenic_confops; 771 pctl_desc->confops = &ingenic_confops;
772 pctl_desc->npins = chip_info->num_chips * PINS_PER_GPIO_CHIP; 772 pctl_desc->npins = chip_info->num_chips * PINS_PER_GPIO_CHIP;
773 pctl_desc->pins = jzpc->pdesc = devm_kzalloc(&pdev->dev, 773 pctl_desc->pins = jzpc->pdesc = devm_kcalloc(&pdev->dev,
774 sizeof(*jzpc->pdesc) * pctl_desc->npins, GFP_KERNEL); 774 pctl_desc->npins, sizeof(*jzpc->pdesc), GFP_KERNEL);
775 if (!jzpc->pdesc) 775 if (!jzpc->pdesc)
776 return -ENOMEM; 776 return -ENOMEM;
777 777
diff --git a/drivers/pinctrl/pinctrl-lantiq.c b/drivers/pinctrl/pinctrl-lantiq.c
index 41dc39c7a7b1..81632af3a86a 100644
--- a/drivers/pinctrl/pinctrl-lantiq.c
+++ b/drivers/pinctrl/pinctrl-lantiq.c
@@ -158,7 +158,8 @@ static int ltq_pinctrl_dt_node_to_map(struct pinctrl_dev *pctldev,
158 158
159 for_each_child_of_node(np_config, np) 159 for_each_child_of_node(np_config, np)
160 max_maps += ltq_pinctrl_dt_subnode_size(np); 160 max_maps += ltq_pinctrl_dt_subnode_size(np);
161 *map = kzalloc(max_maps * sizeof(struct pinctrl_map) * 2, GFP_KERNEL); 161 *map = kzalloc(array3_size(max_maps, sizeof(struct pinctrl_map), 2),
162 GFP_KERNEL);
162 if (!*map) 163 if (!*map)
163 return -ENOMEM; 164 return -ENOMEM;
164 tmp = *map; 165 tmp = *map;
diff --git a/drivers/pinctrl/pinctrl-lpc18xx.c b/drivers/pinctrl/pinctrl-lpc18xx.c
index d090f37ca4a1..190f17e4bbda 100644
--- a/drivers/pinctrl/pinctrl-lpc18xx.c
+++ b/drivers/pinctrl/pinctrl-lpc18xx.c
@@ -1308,8 +1308,9 @@ static int lpc18xx_create_group_func_map(struct device *dev,
1308 } 1308 }
1309 1309
1310 scu->func[func].ngroups = ngroups; 1310 scu->func[func].ngroups = ngroups;
1311 scu->func[func].groups = devm_kzalloc(dev, ngroups * 1311 scu->func[func].groups = devm_kcalloc(dev,
1312 sizeof(char *), GFP_KERNEL); 1312 ngroups, sizeof(char *),
1313 GFP_KERNEL);
1313 if (!scu->func[func].groups) 1314 if (!scu->func[func].groups)
1314 return -ENOMEM; 1315 return -ENOMEM;
1315 1316
diff --git a/drivers/pinctrl/pinctrl-ocelot.c b/drivers/pinctrl/pinctrl-ocelot.c
index b5b3547fdcb2..15bb1cb8729b 100644
--- a/drivers/pinctrl/pinctrl-ocelot.c
+++ b/drivers/pinctrl/pinctrl-ocelot.c
@@ -330,7 +330,8 @@ static int ocelot_create_group_func_map(struct device *dev,
330 } 330 }
331 331
332 info->func[f].ngroups = npins; 332 info->func[f].ngroups = npins;
333 info->func[f].groups = devm_kzalloc(dev, npins * 333 info->func[f].groups = devm_kcalloc(dev,
334 npins,
334 sizeof(char *), 335 sizeof(char *),
335 GFP_KERNEL); 336 GFP_KERNEL);
336 if (!info->func[f].groups) 337 if (!info->func[f].groups)
diff --git a/drivers/pinctrl/pinctrl-rockchip.c b/drivers/pinctrl/pinctrl-rockchip.c
index 1882713e68f9..f4a61429e06e 100644
--- a/drivers/pinctrl/pinctrl-rockchip.c
+++ b/drivers/pinctrl/pinctrl-rockchip.c
@@ -507,7 +507,7 @@ static int rockchip_dt_node_to_map(struct pinctrl_dev *pctldev,
507 } 507 }
508 508
509 map_num += grp->npins; 509 map_num += grp->npins;
510 new_map = devm_kzalloc(pctldev->dev, sizeof(*new_map) * map_num, 510 new_map = devm_kcalloc(pctldev->dev, map_num, sizeof(*new_map),
511 GFP_KERNEL); 511 GFP_KERNEL);
512 if (!new_map) 512 if (!new_map)
513 return -ENOMEM; 513 return -ENOMEM;
@@ -2473,10 +2473,11 @@ static int rockchip_pinctrl_parse_groups(struct device_node *np,
2473 2473
2474 grp->npins = size / 4; 2474 grp->npins = size / 4;
2475 2475
2476 grp->pins = devm_kzalloc(info->dev, grp->npins * sizeof(unsigned int), 2476 grp->pins = devm_kcalloc(info->dev, grp->npins, sizeof(unsigned int),
2477 GFP_KERNEL); 2477 GFP_KERNEL);
2478 grp->data = devm_kzalloc(info->dev, grp->npins * 2478 grp->data = devm_kcalloc(info->dev,
2479 sizeof(struct rockchip_pin_config), 2479 grp->npins,
2480 sizeof(struct rockchip_pin_config),
2480 GFP_KERNEL); 2481 GFP_KERNEL);
2481 if (!grp->pins || !grp->data) 2482 if (!grp->pins || !grp->data)
2482 return -ENOMEM; 2483 return -ENOMEM;
@@ -2528,8 +2529,8 @@ static int rockchip_pinctrl_parse_functions(struct device_node *np,
2528 if (func->ngroups <= 0) 2529 if (func->ngroups <= 0)
2529 return 0; 2530 return 0;
2530 2531
2531 func->groups = devm_kzalloc(info->dev, 2532 func->groups = devm_kcalloc(info->dev,
2532 func->ngroups * sizeof(char *), GFP_KERNEL); 2533 func->ngroups, sizeof(char *), GFP_KERNEL);
2533 if (!func->groups) 2534 if (!func->groups)
2534 return -ENOMEM; 2535 return -ENOMEM;
2535 2536
@@ -2560,13 +2561,15 @@ static int rockchip_pinctrl_parse_dt(struct platform_device *pdev,
2560 dev_dbg(&pdev->dev, "nfunctions = %d\n", info->nfunctions); 2561 dev_dbg(&pdev->dev, "nfunctions = %d\n", info->nfunctions);
2561 dev_dbg(&pdev->dev, "ngroups = %d\n", info->ngroups); 2562 dev_dbg(&pdev->dev, "ngroups = %d\n", info->ngroups);
2562 2563
2563 info->functions = devm_kzalloc(dev, info->nfunctions * 2564 info->functions = devm_kcalloc(dev,
2565 info->nfunctions,
2564 sizeof(struct rockchip_pmx_func), 2566 sizeof(struct rockchip_pmx_func),
2565 GFP_KERNEL); 2567 GFP_KERNEL);
2566 if (!info->functions) 2568 if (!info->functions)
2567 return -EINVAL; 2569 return -EINVAL;
2568 2570
2569 info->groups = devm_kzalloc(dev, info->ngroups * 2571 info->groups = devm_kcalloc(dev,
2572 info->ngroups,
2570 sizeof(struct rockchip_pin_group), 2573 sizeof(struct rockchip_pin_group),
2571 GFP_KERNEL); 2574 GFP_KERNEL);
2572 if (!info->groups) 2575 if (!info->groups)
@@ -2604,8 +2607,9 @@ static int rockchip_pinctrl_register(struct platform_device *pdev,
2604 ctrldesc->pmxops = &rockchip_pmx_ops; 2607 ctrldesc->pmxops = &rockchip_pmx_ops;
2605 ctrldesc->confops = &rockchip_pinconf_ops; 2608 ctrldesc->confops = &rockchip_pinconf_ops;
2606 2609
2607 pindesc = devm_kzalloc(&pdev->dev, sizeof(*pindesc) * 2610 pindesc = devm_kcalloc(&pdev->dev,
2608 info->ctrl->nr_pins, GFP_KERNEL); 2611 info->ctrl->nr_pins, sizeof(*pindesc),
2612 GFP_KERNEL);
2609 if (!pindesc) 2613 if (!pindesc)
2610 return -ENOMEM; 2614 return -ENOMEM;
2611 2615
diff --git a/drivers/pinctrl/pinctrl-single.c b/drivers/pinctrl/pinctrl-single.c
index 9c3c00515aa0..b3153c095199 100644
--- a/drivers/pinctrl/pinctrl-single.c
+++ b/drivers/pinctrl/pinctrl-single.c
@@ -712,8 +712,8 @@ static int pcs_allocate_pin_table(struct pcs_device *pcs)
712 } 712 }
713 713
714 dev_dbg(pcs->dev, "allocating %i pins\n", nr_pins); 714 dev_dbg(pcs->dev, "allocating %i pins\n", nr_pins);
715 pcs->pins.pa = devm_kzalloc(pcs->dev, 715 pcs->pins.pa = devm_kcalloc(pcs->dev,
716 sizeof(*pcs->pins.pa) * nr_pins, 716 nr_pins, sizeof(*pcs->pins.pa),
717 GFP_KERNEL); 717 GFP_KERNEL);
718 if (!pcs->pins.pa) 718 if (!pcs->pins.pa)
719 return -ENOMEM; 719 return -ENOMEM;
@@ -924,15 +924,15 @@ static int pcs_parse_pinconf(struct pcs_device *pcs, struct device_node *np,
924 if (!nconfs) 924 if (!nconfs)
925 return 0; 925 return 0;
926 926
927 func->conf = devm_kzalloc(pcs->dev, 927 func->conf = devm_kcalloc(pcs->dev,
928 sizeof(struct pcs_conf_vals) * nconfs, 928 nconfs, sizeof(struct pcs_conf_vals),
929 GFP_KERNEL); 929 GFP_KERNEL);
930 if (!func->conf) 930 if (!func->conf)
931 return -ENOMEM; 931 return -ENOMEM;
932 func->nconfs = nconfs; 932 func->nconfs = nconfs;
933 conf = &(func->conf[0]); 933 conf = &(func->conf[0]);
934 m++; 934 m++;
935 settings = devm_kzalloc(pcs->dev, sizeof(unsigned long) * nconfs, 935 settings = devm_kcalloc(pcs->dev, nconfs, sizeof(unsigned long),
936 GFP_KERNEL); 936 GFP_KERNEL);
937 if (!settings) 937 if (!settings)
938 return -ENOMEM; 938 return -ENOMEM;
@@ -988,11 +988,11 @@ static int pcs_parse_one_pinctrl_entry(struct pcs_device *pcs,
988 return -EINVAL; 988 return -EINVAL;
989 } 989 }
990 990
991 vals = devm_kzalloc(pcs->dev, sizeof(*vals) * rows, GFP_KERNEL); 991 vals = devm_kcalloc(pcs->dev, rows, sizeof(*vals), GFP_KERNEL);
992 if (!vals) 992 if (!vals)
993 return -ENOMEM; 993 return -ENOMEM;
994 994
995 pins = devm_kzalloc(pcs->dev, sizeof(*pins) * rows, GFP_KERNEL); 995 pins = devm_kcalloc(pcs->dev, rows, sizeof(*pins), GFP_KERNEL);
996 if (!pins) 996 if (!pins)
997 goto free_vals; 997 goto free_vals;
998 998
@@ -1089,13 +1089,15 @@ static int pcs_parse_bits_in_pinctrl_entry(struct pcs_device *pcs,
1089 1089
1090 npins_in_row = pcs->width / pcs->bits_per_pin; 1090 npins_in_row = pcs->width / pcs->bits_per_pin;
1091 1091
1092 vals = devm_kzalloc(pcs->dev, sizeof(*vals) * rows * npins_in_row, 1092 vals = devm_kzalloc(pcs->dev,
1093 GFP_KERNEL); 1093 array3_size(rows, npins_in_row, sizeof(*vals)),
1094 GFP_KERNEL);
1094 if (!vals) 1095 if (!vals)
1095 return -ENOMEM; 1096 return -ENOMEM;
1096 1097
1097 pins = devm_kzalloc(pcs->dev, sizeof(*pins) * rows * npins_in_row, 1098 pins = devm_kzalloc(pcs->dev,
1098 GFP_KERNEL); 1099 array3_size(rows, npins_in_row, sizeof(*pins)),
1100 GFP_KERNEL);
1099 if (!pins) 1101 if (!pins)
1100 goto free_vals; 1102 goto free_vals;
1101 1103
@@ -1217,7 +1219,7 @@ static int pcs_dt_node_to_map(struct pinctrl_dev *pctldev,
1217 pcs = pinctrl_dev_get_drvdata(pctldev); 1219 pcs = pinctrl_dev_get_drvdata(pctldev);
1218 1220
1219 /* create 2 maps. One is for pinmux, and the other is for pinconf. */ 1221 /* create 2 maps. One is for pinmux, and the other is for pinconf. */
1220 *map = devm_kzalloc(pcs->dev, sizeof(**map) * 2, GFP_KERNEL); 1222 *map = devm_kcalloc(pcs->dev, 2, sizeof(**map), GFP_KERNEL);
1221 if (!*map) 1223 if (!*map)
1222 return -ENOMEM; 1224 return -ENOMEM;
1223 1225
diff --git a/drivers/pinctrl/pinctrl-st.c b/drivers/pinctrl/pinctrl-st.c
index 2081c67667a8..0966bb0bf71f 100644
--- a/drivers/pinctrl/pinctrl-st.c
+++ b/drivers/pinctrl/pinctrl-st.c
@@ -823,8 +823,8 @@ static int st_pctl_dt_node_to_map(struct pinctrl_dev *pctldev,
823 } 823 }
824 824
825 map_num = grp->npins + 1; 825 map_num = grp->npins + 1;
826 new_map = devm_kzalloc(pctldev->dev, 826 new_map = devm_kcalloc(pctldev->dev,
827 sizeof(*new_map) * map_num, GFP_KERNEL); 827 map_num, sizeof(*new_map), GFP_KERNEL);
828 if (!new_map) 828 if (!new_map)
829 return -ENOMEM; 829 return -ENOMEM;
830 830
@@ -1191,9 +1191,9 @@ static int st_pctl_dt_parse_groups(struct device_node *np,
1191 1191
1192 grp->npins = npins; 1192 grp->npins = npins;
1193 grp->name = np->name; 1193 grp->name = np->name;
1194 grp->pins = devm_kzalloc(info->dev, npins * sizeof(u32), GFP_KERNEL); 1194 grp->pins = devm_kcalloc(info->dev, npins, sizeof(u32), GFP_KERNEL);
1195 grp->pin_conf = devm_kzalloc(info->dev, 1195 grp->pin_conf = devm_kcalloc(info->dev,
1196 npins * sizeof(*conf), GFP_KERNEL); 1196 npins, sizeof(*conf), GFP_KERNEL);
1197 1197
1198 if (!grp->pins || !grp->pin_conf) 1198 if (!grp->pins || !grp->pin_conf)
1199 return -ENOMEM; 1199 return -ENOMEM;
@@ -1249,8 +1249,8 @@ static int st_pctl_parse_functions(struct device_node *np,
1249 dev_err(info->dev, "No groups defined\n"); 1249 dev_err(info->dev, "No groups defined\n");
1250 return -EINVAL; 1250 return -EINVAL;
1251 } 1251 }
1252 func->groups = devm_kzalloc(info->dev, 1252 func->groups = devm_kcalloc(info->dev,
1253 func->ngroups * sizeof(char *), GFP_KERNEL); 1253 func->ngroups, sizeof(char *), GFP_KERNEL);
1254 if (!func->groups) 1254 if (!func->groups)
1255 return -ENOMEM; 1255 return -ENOMEM;
1256 1256
@@ -1573,14 +1573,15 @@ static int st_pctl_probe_dt(struct platform_device *pdev,
1573 dev_info(&pdev->dev, "nfunctions = %d\n", info->nfunctions); 1573 dev_info(&pdev->dev, "nfunctions = %d\n", info->nfunctions);
1574 dev_info(&pdev->dev, "ngroups = %d\n", info->ngroups); 1574 dev_info(&pdev->dev, "ngroups = %d\n", info->ngroups);
1575 1575
1576 info->functions = devm_kzalloc(&pdev->dev, 1576 info->functions = devm_kcalloc(&pdev->dev,
1577 info->nfunctions * sizeof(*info->functions), GFP_KERNEL); 1577 info->nfunctions, sizeof(*info->functions), GFP_KERNEL);
1578 1578
1579 info->groups = devm_kzalloc(&pdev->dev, 1579 info->groups = devm_kcalloc(&pdev->dev,
1580 info->ngroups * sizeof(*info->groups) , GFP_KERNEL); 1580 info->ngroups, sizeof(*info->groups),
1581 GFP_KERNEL);
1581 1582
1582 info->banks = devm_kzalloc(&pdev->dev, 1583 info->banks = devm_kcalloc(&pdev->dev,
1583 info->nbanks * sizeof(*info->banks), GFP_KERNEL); 1584 info->nbanks, sizeof(*info->banks), GFP_KERNEL);
1584 1585
1585 if (!info->functions || !info->groups || !info->banks) 1586 if (!info->functions || !info->groups || !info->banks)
1586 return -ENOMEM; 1587 return -ENOMEM;
@@ -1608,8 +1609,8 @@ static int st_pctl_probe_dt(struct platform_device *pdev,
1608 } 1609 }
1609 1610
1610 pctl_desc->npins = info->nbanks * ST_GPIO_PINS_PER_BANK; 1611 pctl_desc->npins = info->nbanks * ST_GPIO_PINS_PER_BANK;
1611 pdesc = devm_kzalloc(&pdev->dev, 1612 pdesc = devm_kcalloc(&pdev->dev,
1612 sizeof(*pdesc) * pctl_desc->npins, GFP_KERNEL); 1613 pctl_desc->npins, sizeof(*pdesc), GFP_KERNEL);
1613 if (!pdesc) 1614 if (!pdesc)
1614 return -ENOMEM; 1615 return -ENOMEM;
1615 1616
diff --git a/drivers/pinctrl/pinctrl-xway.c b/drivers/pinctrl/pinctrl-xway.c
index cd0f402c1164..93f8bd04e7fe 100644
--- a/drivers/pinctrl/pinctrl-xway.c
+++ b/drivers/pinctrl/pinctrl-xway.c
@@ -1727,8 +1727,8 @@ static int pinmux_xway_probe(struct platform_device *pdev)
1727 xway_chip.ngpio = xway_soc->pin_count; 1727 xway_chip.ngpio = xway_soc->pin_count;
1728 1728
1729 /* load our pad descriptors */ 1729 /* load our pad descriptors */
1730 xway_info.pads = devm_kzalloc(&pdev->dev, 1730 xway_info.pads = devm_kcalloc(&pdev->dev,
1731 sizeof(struct pinctrl_pin_desc) * xway_chip.ngpio, 1731 xway_chip.ngpio, sizeof(struct pinctrl_pin_desc),
1732 GFP_KERNEL); 1732 GFP_KERNEL);
1733 if (!xway_info.pads) 1733 if (!xway_info.pads)
1734 return -ENOMEM; 1734 return -ENOMEM;
diff --git a/drivers/pinctrl/samsung/pinctrl-exynos.c b/drivers/pinctrl/samsung/pinctrl-exynos.c
index 0a625a64ff5d..a263ddd94945 100644
--- a/drivers/pinctrl/samsung/pinctrl-exynos.c
+++ b/drivers/pinctrl/samsung/pinctrl-exynos.c
@@ -491,8 +491,9 @@ int exynos_eint_wkup_init(struct samsung_pinctrl_drv_data *d)
491 continue; 491 continue;
492 } 492 }
493 493
494 weint_data = devm_kzalloc(dev, bank->nr_pins 494 weint_data = devm_kcalloc(dev,
495 * sizeof(*weint_data), GFP_KERNEL); 495 bank->nr_pins, sizeof(*weint_data),
496 GFP_KERNEL);
496 if (!weint_data) 497 if (!weint_data)
497 return -ENOMEM; 498 return -ENOMEM;
498 499
diff --git a/drivers/pinctrl/samsung/pinctrl-samsung.c b/drivers/pinctrl/samsung/pinctrl-samsung.c
index 618945a0fd38..698c7d8c9a08 100644
--- a/drivers/pinctrl/samsung/pinctrl-samsung.c
+++ b/drivers/pinctrl/samsung/pinctrl-samsung.c
@@ -674,7 +674,7 @@ static struct samsung_pin_group *samsung_pinctrl_create_groups(
674 const struct pinctrl_pin_desc *pdesc; 674 const struct pinctrl_pin_desc *pdesc;
675 int i; 675 int i;
676 676
677 groups = devm_kzalloc(dev, ctrldesc->npins * sizeof(*groups), 677 groups = devm_kcalloc(dev, ctrldesc->npins, sizeof(*groups),
678 GFP_KERNEL); 678 GFP_KERNEL);
679 if (!groups) 679 if (!groups)
680 return ERR_PTR(-EINVAL); 680 return ERR_PTR(-EINVAL);
@@ -711,7 +711,7 @@ static int samsung_pinctrl_create_function(struct device *dev,
711 711
712 func->name = func_np->full_name; 712 func->name = func_np->full_name;
713 713
714 func->groups = devm_kzalloc(dev, npins * sizeof(char *), GFP_KERNEL); 714 func->groups = devm_kcalloc(dev, npins, sizeof(char *), GFP_KERNEL);
715 if (!func->groups) 715 if (!func->groups)
716 return -ENOMEM; 716 return -ENOMEM;
717 717
@@ -768,7 +768,7 @@ static struct samsung_pmx_func *samsung_pinctrl_create_functions(
768 } 768 }
769 } 769 }
770 770
771 functions = devm_kzalloc(dev, func_cnt * sizeof(*functions), 771 functions = devm_kcalloc(dev, func_cnt, sizeof(*functions),
772 GFP_KERNEL); 772 GFP_KERNEL);
773 if (!functions) 773 if (!functions)
774 return ERR_PTR(-ENOMEM); 774 return ERR_PTR(-ENOMEM);
@@ -860,8 +860,9 @@ static int samsung_pinctrl_register(struct platform_device *pdev,
860 ctrldesc->pmxops = &samsung_pinmux_ops; 860 ctrldesc->pmxops = &samsung_pinmux_ops;
861 ctrldesc->confops = &samsung_pinconf_ops; 861 ctrldesc->confops = &samsung_pinconf_ops;
862 862
863 pindesc = devm_kzalloc(&pdev->dev, sizeof(*pindesc) * 863 pindesc = devm_kcalloc(&pdev->dev,
864 drvdata->nr_pins, GFP_KERNEL); 864 drvdata->nr_pins, sizeof(*pindesc),
865 GFP_KERNEL);
865 if (!pindesc) 866 if (!pindesc)
866 return -ENOMEM; 867 return -ENOMEM;
867 ctrldesc->pins = pindesc; 868 ctrldesc->pins = pindesc;
@@ -875,8 +876,10 @@ static int samsung_pinctrl_register(struct platform_device *pdev,
875 * allocate space for storing the dynamically generated names for all 876 * allocate space for storing the dynamically generated names for all
876 * the pins which belong to this pin-controller. 877 * the pins which belong to this pin-controller.
877 */ 878 */
878 pin_names = devm_kzalloc(&pdev->dev, sizeof(char) * PIN_NAME_LENGTH * 879 pin_names = devm_kzalloc(&pdev->dev,
879 drvdata->nr_pins, GFP_KERNEL); 880 array3_size(sizeof(char), PIN_NAME_LENGTH,
881 drvdata->nr_pins),
882 GFP_KERNEL);
880 if (!pin_names) 883 if (!pin_names)
881 return -ENOMEM; 884 return -ENOMEM;
882 885
diff --git a/drivers/pinctrl/sh-pfc/core.c b/drivers/pinctrl/sh-pfc/core.c
index eb06981538b4..c671c3c4aca6 100644
--- a/drivers/pinctrl/sh-pfc/core.c
+++ b/drivers/pinctrl/sh-pfc/core.c
@@ -57,7 +57,7 @@ static int sh_pfc_map_resources(struct sh_pfc *pfc,
57 return -EINVAL; 57 return -EINVAL;
58 58
59 /* Allocate memory windows and IRQs arrays. */ 59 /* Allocate memory windows and IRQs arrays. */
60 windows = devm_kzalloc(pfc->dev, num_windows * sizeof(*windows), 60 windows = devm_kcalloc(pfc->dev, num_windows, sizeof(*windows),
61 GFP_KERNEL); 61 GFP_KERNEL);
62 if (windows == NULL) 62 if (windows == NULL)
63 return -ENOMEM; 63 return -ENOMEM;
@@ -66,7 +66,7 @@ static int sh_pfc_map_resources(struct sh_pfc *pfc,
66 pfc->windows = windows; 66 pfc->windows = windows;
67 67
68 if (num_irqs) { 68 if (num_irqs) {
69 irqs = devm_kzalloc(pfc->dev, num_irqs * sizeof(*irqs), 69 irqs = devm_kcalloc(pfc->dev, num_irqs, sizeof(*irqs),
70 GFP_KERNEL); 70 GFP_KERNEL);
71 if (irqs == NULL) 71 if (irqs == NULL)
72 return -ENOMEM; 72 return -ENOMEM;
@@ -444,7 +444,7 @@ static int sh_pfc_init_ranges(struct sh_pfc *pfc)
444 } 444 }
445 445
446 pfc->nr_ranges = nr_ranges; 446 pfc->nr_ranges = nr_ranges;
447 pfc->ranges = devm_kzalloc(pfc->dev, sizeof(*pfc->ranges) * nr_ranges, 447 pfc->ranges = devm_kcalloc(pfc->dev, nr_ranges, sizeof(*pfc->ranges),
448 GFP_KERNEL); 448 GFP_KERNEL);
449 if (pfc->ranges == NULL) 449 if (pfc->ranges == NULL)
450 return -ENOMEM; 450 return -ENOMEM;
diff --git a/drivers/pinctrl/sh-pfc/gpio.c b/drivers/pinctrl/sh-pfc/gpio.c
index 946d9be50b62..6ffdc6beb203 100644
--- a/drivers/pinctrl/sh-pfc/gpio.c
+++ b/drivers/pinctrl/sh-pfc/gpio.c
@@ -107,7 +107,7 @@ static int gpio_setup_data_regs(struct sh_pfc_chip *chip)
107 for (i = 0; pfc->info->data_regs[i].reg_width; ++i) 107 for (i = 0; pfc->info->data_regs[i].reg_width; ++i)
108 ; 108 ;
109 109
110 chip->regs = devm_kzalloc(pfc->dev, i * sizeof(*chip->regs), 110 chip->regs = devm_kcalloc(pfc->dev, i, sizeof(*chip->regs),
111 GFP_KERNEL); 111 GFP_KERNEL);
112 if (chip->regs == NULL) 112 if (chip->regs == NULL)
113 return -ENOMEM; 113 return -ENOMEM;
@@ -224,8 +224,9 @@ static int gpio_pin_setup(struct sh_pfc_chip *chip)
224 struct gpio_chip *gc = &chip->gpio_chip; 224 struct gpio_chip *gc = &chip->gpio_chip;
225 int ret; 225 int ret;
226 226
227 chip->pins = devm_kzalloc(pfc->dev, pfc->info->nr_pins * 227 chip->pins = devm_kcalloc(pfc->dev,
228 sizeof(*chip->pins), GFP_KERNEL); 228 pfc->info->nr_pins, sizeof(*chip->pins),
229 GFP_KERNEL);
229 if (chip->pins == NULL) 230 if (chip->pins == NULL)
230 return -ENOMEM; 231 return -ENOMEM;
231 232
diff --git a/drivers/pinctrl/sh-pfc/pinctrl.c b/drivers/pinctrl/sh-pfc/pinctrl.c
index 70db21638901..654dc20e171b 100644
--- a/drivers/pinctrl/sh-pfc/pinctrl.c
+++ b/drivers/pinctrl/sh-pfc/pinctrl.c
@@ -770,14 +770,14 @@ static int sh_pfc_map_pins(struct sh_pfc *pfc, struct sh_pfc_pinctrl *pmx)
770 unsigned int i; 770 unsigned int i;
771 771
772 /* Allocate and initialize the pins and configs arrays. */ 772 /* Allocate and initialize the pins and configs arrays. */
773 pmx->pins = devm_kzalloc(pfc->dev, 773 pmx->pins = devm_kcalloc(pfc->dev,
774 sizeof(*pmx->pins) * pfc->info->nr_pins, 774 pfc->info->nr_pins, sizeof(*pmx->pins),
775 GFP_KERNEL); 775 GFP_KERNEL);
776 if (unlikely(!pmx->pins)) 776 if (unlikely(!pmx->pins))
777 return -ENOMEM; 777 return -ENOMEM;
778 778
779 pmx->configs = devm_kzalloc(pfc->dev, 779 pmx->configs = devm_kcalloc(pfc->dev,
780 sizeof(*pmx->configs) * pfc->info->nr_pins, 780 pfc->info->nr_pins, sizeof(*pmx->configs),
781 GFP_KERNEL); 781 GFP_KERNEL);
782 if (unlikely(!pmx->configs)) 782 if (unlikely(!pmx->configs))
783 return -ENOMEM; 783 return -ENOMEM;
diff --git a/drivers/pinctrl/sirf/pinctrl-sirf.c b/drivers/pinctrl/sirf/pinctrl-sirf.c
index ca2347d0d579..505845c66dd0 100644
--- a/drivers/pinctrl/sirf/pinctrl-sirf.c
+++ b/drivers/pinctrl/sirf/pinctrl-sirf.c
@@ -108,7 +108,7 @@ static int sirfsoc_dt_node_to_map(struct pinctrl_dev *pctldev,
108 return -ENODEV; 108 return -ENODEV;
109 } 109 }
110 110
111 *map = kzalloc(sizeof(**map) * count, GFP_KERNEL); 111 *map = kcalloc(count, sizeof(**map), GFP_KERNEL);
112 if (!*map) 112 if (!*map)
113 return -ENOMEM; 113 return -ENOMEM;
114 114
diff --git a/drivers/pinctrl/spear/pinctrl-plgpio.c b/drivers/pinctrl/spear/pinctrl-plgpio.c
index d2123e396b29..9d906474f3e4 100644
--- a/drivers/pinctrl/spear/pinctrl-plgpio.c
+++ b/drivers/pinctrl/spear/pinctrl-plgpio.c
@@ -538,9 +538,9 @@ static int plgpio_probe(struct platform_device *pdev)
538 dev_warn(&pdev->dev, "clk_get() failed, work without it\n"); 538 dev_warn(&pdev->dev, "clk_get() failed, work without it\n");
539 539
540#ifdef CONFIG_PM_SLEEP 540#ifdef CONFIG_PM_SLEEP
541 plgpio->csave_regs = devm_kzalloc(&pdev->dev, 541 plgpio->csave_regs = devm_kcalloc(&pdev->dev,
542 sizeof(*plgpio->csave_regs) *
543 DIV_ROUND_UP(plgpio->chip.ngpio, MAX_GPIO_PER_REG), 542 DIV_ROUND_UP(plgpio->chip.ngpio, MAX_GPIO_PER_REG),
543 sizeof(*plgpio->csave_regs),
544 GFP_KERNEL); 544 GFP_KERNEL);
545 if (!plgpio->csave_regs) 545 if (!plgpio->csave_regs)
546 return -ENOMEM; 546 return -ENOMEM;
diff --git a/drivers/pinctrl/spear/pinctrl-spear.c b/drivers/pinctrl/spear/pinctrl-spear.c
index efe79d3f7659..c4f850345dc4 100644
--- a/drivers/pinctrl/spear/pinctrl-spear.c
+++ b/drivers/pinctrl/spear/pinctrl-spear.c
@@ -172,7 +172,7 @@ static int spear_pinctrl_dt_node_to_map(struct pinctrl_dev *pctldev,
172 return -ENODEV; 172 return -ENODEV;
173 } 173 }
174 174
175 *map = kzalloc(sizeof(**map) * count, GFP_KERNEL); 175 *map = kcalloc(count, sizeof(**map), GFP_KERNEL);
176 if (!*map) 176 if (!*map)
177 return -ENOMEM; 177 return -ENOMEM;
178 178
diff --git a/drivers/pinctrl/sprd/pinctrl-sprd.c b/drivers/pinctrl/sprd/pinctrl-sprd.c
index ba1c2ca406e4..78c2f548b25f 100644
--- a/drivers/pinctrl/sprd/pinctrl-sprd.c
+++ b/drivers/pinctrl/sprd/pinctrl-sprd.c
@@ -879,8 +879,9 @@ static int sprd_pinctrl_parse_groups(struct device_node *np,
879 879
880 grp->name = np->name; 880 grp->name = np->name;
881 grp->npins = ret; 881 grp->npins = ret;
882 grp->pins = devm_kzalloc(sprd_pctl->dev, grp->npins * 882 grp->pins = devm_kcalloc(sprd_pctl->dev,
883 sizeof(unsigned int), GFP_KERNEL); 883 grp->npins, sizeof(unsigned int),
884 GFP_KERNEL);
884 if (!grp->pins) 885 if (!grp->pins)
885 return -ENOMEM; 886 return -ENOMEM;
886 887
@@ -931,14 +932,15 @@ static int sprd_pinctrl_parse_dt(struct sprd_pinctrl *sprd_pctl)
931 if (!info->ngroups) 932 if (!info->ngroups)
932 return 0; 933 return 0;
933 934
934 info->groups = devm_kzalloc(sprd_pctl->dev, info->ngroups * 935 info->groups = devm_kcalloc(sprd_pctl->dev,
936 info->ngroups,
935 sizeof(struct sprd_pin_group), 937 sizeof(struct sprd_pin_group),
936 GFP_KERNEL); 938 GFP_KERNEL);
937 if (!info->groups) 939 if (!info->groups)
938 return -ENOMEM; 940 return -ENOMEM;
939 941
940 info->grp_names = devm_kzalloc(sprd_pctl->dev, 942 info->grp_names = devm_kcalloc(sprd_pctl->dev,
941 info->ngroups * sizeof(char *), 943 info->ngroups, sizeof(char *),
942 GFP_KERNEL); 944 GFP_KERNEL);
943 if (!info->grp_names) 945 if (!info->grp_names)
944 return -ENOMEM; 946 return -ENOMEM;
@@ -980,8 +982,8 @@ static int sprd_pinctrl_add_pins(struct sprd_pinctrl *sprd_pctl,
980 int i; 982 int i;
981 983
982 info->npins = pins_cnt; 984 info->npins = pins_cnt;
983 info->pins = devm_kzalloc(sprd_pctl->dev, 985 info->pins = devm_kcalloc(sprd_pctl->dev,
984 info->npins * sizeof(struct sprd_pin), 986 info->npins, sizeof(struct sprd_pin),
985 GFP_KERNEL); 987 GFP_KERNEL);
986 if (!info->pins) 988 if (!info->pins)
987 return -ENOMEM; 989 return -ENOMEM;
@@ -1057,7 +1059,8 @@ int sprd_pinctrl_core_probe(struct platform_device *pdev,
1057 return ret; 1059 return ret;
1058 } 1060 }
1059 1061
1060 pin_desc = devm_kzalloc(&pdev->dev, pinctrl_info->npins * 1062 pin_desc = devm_kcalloc(&pdev->dev,
1063 pinctrl_info->npins,
1061 sizeof(struct pinctrl_pin_desc), 1064 sizeof(struct pinctrl_pin_desc),
1062 GFP_KERNEL); 1065 GFP_KERNEL);
1063 if (!pin_desc) 1066 if (!pin_desc)
diff --git a/drivers/pinctrl/sunxi/pinctrl-sunxi.c b/drivers/pinctrl/sunxi/pinctrl-sunxi.c
index 25e80a5370ca..4d9bf9b3e9f3 100644
--- a/drivers/pinctrl/sunxi/pinctrl-sunxi.c
+++ b/drivers/pinctrl/sunxi/pinctrl-sunxi.c
@@ -277,7 +277,7 @@ static unsigned long *sunxi_pctrl_build_pin_config(struct device_node *node,
277 if (!configlen) 277 if (!configlen)
278 return NULL; 278 return NULL;
279 279
280 pinconfig = kzalloc(configlen * sizeof(*pinconfig), GFP_KERNEL); 280 pinconfig = kcalloc(configlen, sizeof(*pinconfig), GFP_KERNEL);
281 if (!pinconfig) 281 if (!pinconfig)
282 return ERR_PTR(-ENOMEM); 282 return ERR_PTR(-ENOMEM);
283 283
@@ -352,7 +352,7 @@ static int sunxi_pctrl_dt_node_to_map(struct pinctrl_dev *pctldev,
352 * any configuration. 352 * any configuration.
353 */ 353 */
354 nmaps = npins * 2; 354 nmaps = npins * 2;
355 *map = kmalloc(nmaps * sizeof(struct pinctrl_map), GFP_KERNEL); 355 *map = kmalloc_array(nmaps, sizeof(struct pinctrl_map), GFP_KERNEL);
356 if (!*map) 356 if (!*map)
357 return -ENOMEM; 357 return -ENOMEM;
358 358
@@ -1055,8 +1055,8 @@ static int sunxi_pinctrl_build_state(struct platform_device *pdev)
1055 * this means that the number of pins is the maximum group 1055 * this means that the number of pins is the maximum group
1056 * number we will ever see. 1056 * number we will ever see.
1057 */ 1057 */
1058 pctl->groups = devm_kzalloc(&pdev->dev, 1058 pctl->groups = devm_kcalloc(&pdev->dev,
1059 pctl->desc->npins * sizeof(*pctl->groups), 1059 pctl->desc->npins, sizeof(*pctl->groups),
1060 GFP_KERNEL); 1060 GFP_KERNEL);
1061 if (!pctl->groups) 1061 if (!pctl->groups)
1062 return -ENOMEM; 1062 return -ENOMEM;
@@ -1079,8 +1079,9 @@ static int sunxi_pinctrl_build_state(struct platform_device *pdev)
1079 * We suppose that we won't have any more functions than pins, 1079 * We suppose that we won't have any more functions than pins,
1080 * we'll reallocate that later anyway 1080 * we'll reallocate that later anyway
1081 */ 1081 */
1082 pctl->functions = devm_kzalloc(&pdev->dev, 1082 pctl->functions = devm_kcalloc(&pdev->dev,
1083 pctl->ngroups * sizeof(*pctl->functions), 1083 pctl->ngroups,
1084 sizeof(*pctl->functions),
1084 GFP_KERNEL); 1085 GFP_KERNEL);
1085 if (!pctl->functions) 1086 if (!pctl->functions)
1086 return -ENOMEM; 1087 return -ENOMEM;
@@ -1137,8 +1138,9 @@ static int sunxi_pinctrl_build_state(struct platform_device *pdev)
1137 1138
1138 if (!func_item->groups) { 1139 if (!func_item->groups) {
1139 func_item->groups = 1140 func_item->groups =
1140 devm_kzalloc(&pdev->dev, 1141 devm_kcalloc(&pdev->dev,
1141 func_item->ngroups * sizeof(*func_item->groups), 1142 func_item->ngroups,
1143 sizeof(*func_item->groups),
1142 GFP_KERNEL); 1144 GFP_KERNEL);
1143 if (!func_item->groups) 1145 if (!func_item->groups)
1144 return -ENOMEM; 1146 return -ENOMEM;
@@ -1281,8 +1283,8 @@ int sunxi_pinctrl_init_with_variant(struct platform_device *pdev,
1281 return ret; 1283 return ret;
1282 } 1284 }
1283 1285
1284 pins = devm_kzalloc(&pdev->dev, 1286 pins = devm_kcalloc(&pdev->dev,
1285 pctl->desc->npins * sizeof(*pins), 1287 pctl->desc->npins, sizeof(*pins),
1286 GFP_KERNEL); 1288 GFP_KERNEL);
1287 if (!pins) 1289 if (!pins)
1288 return -ENOMEM; 1290 return -ENOMEM;
diff --git a/drivers/pinctrl/tegra/pinctrl-tegra.c b/drivers/pinctrl/tegra/pinctrl-tegra.c
index 49c7c1499bc3..f974eee29a19 100644
--- a/drivers/pinctrl/tegra/pinctrl-tegra.c
+++ b/drivers/pinctrl/tegra/pinctrl-tegra.c
@@ -665,8 +665,8 @@ int tegra_pinctrl_probe(struct platform_device *pdev,
665 * Each mux group will appear in 4 functions' list of groups. 665 * Each mux group will appear in 4 functions' list of groups.
666 * This over-allocates slightly, since not all groups are mux groups. 666 * This over-allocates slightly, since not all groups are mux groups.
667 */ 667 */
668 pmx->group_pins = devm_kzalloc(&pdev->dev, 668 pmx->group_pins = devm_kcalloc(&pdev->dev,
669 soc_data->ngroups * 4 * sizeof(*pmx->group_pins), 669 soc_data->ngroups * 4, sizeof(*pmx->group_pins),
670 GFP_KERNEL); 670 GFP_KERNEL);
671 if (!pmx->group_pins) 671 if (!pmx->group_pins)
672 return -ENOMEM; 672 return -ENOMEM;
@@ -708,7 +708,7 @@ int tegra_pinctrl_probe(struct platform_device *pdev,
708 } 708 }
709 pmx->nbanks = i; 709 pmx->nbanks = i;
710 710
711 pmx->regs = devm_kzalloc(&pdev->dev, pmx->nbanks * sizeof(*pmx->regs), 711 pmx->regs = devm_kcalloc(&pdev->dev, pmx->nbanks, sizeof(*pmx->regs),
712 GFP_KERNEL); 712 GFP_KERNEL);
713 if (!pmx->regs) 713 if (!pmx->regs)
714 return -ENOMEM; 714 return -ENOMEM;
diff --git a/drivers/pinctrl/ti/pinctrl-ti-iodelay.c b/drivers/pinctrl/ti/pinctrl-ti-iodelay.c
index a8a6510183b6..8782c348ebe9 100644
--- a/drivers/pinctrl/ti/pinctrl-ti-iodelay.c
+++ b/drivers/pinctrl/ti/pinctrl-ti-iodelay.c
@@ -510,11 +510,11 @@ static int ti_iodelay_dt_node_to_map(struct pinctrl_dev *pctldev,
510 goto free_map; 510 goto free_map;
511 } 511 }
512 512
513 pins = devm_kzalloc(iod->dev, sizeof(*pins) * rows, GFP_KERNEL); 513 pins = devm_kcalloc(iod->dev, rows, sizeof(*pins), GFP_KERNEL);
514 if (!pins) 514 if (!pins)
515 goto free_group; 515 goto free_group;
516 516
517 cfg = devm_kzalloc(iod->dev, sizeof(*cfg) * rows, GFP_KERNEL); 517 cfg = devm_kcalloc(iod->dev, rows, sizeof(*cfg), GFP_KERNEL);
518 if (!cfg) { 518 if (!cfg) {
519 error = -ENOMEM; 519 error = -ENOMEM;
520 goto free_pins; 520 goto free_pins;
@@ -749,7 +749,7 @@ static int ti_iodelay_alloc_pins(struct device *dev,
749 nr_pins = ti_iodelay_offset_to_pin(iod, r->regmap_config->max_register); 749 nr_pins = ti_iodelay_offset_to_pin(iod, r->regmap_config->max_register);
750 dev_dbg(dev, "Allocating %i pins\n", nr_pins); 750 dev_dbg(dev, "Allocating %i pins\n", nr_pins);
751 751
752 iod->pa = devm_kzalloc(dev, sizeof(*iod->pa) * nr_pins, GFP_KERNEL); 752 iod->pa = devm_kcalloc(dev, nr_pins, sizeof(*iod->pa), GFP_KERNEL);
753 if (!iod->pa) 753 if (!iod->pa)
754 return -ENOMEM; 754 return -ENOMEM;
755 755
diff --git a/drivers/pinctrl/vt8500/pinctrl-wmt.c b/drivers/pinctrl/vt8500/pinctrl-wmt.c
index d73956bdc211..c08318a5a91b 100644
--- a/drivers/pinctrl/vt8500/pinctrl-wmt.c
+++ b/drivers/pinctrl/vt8500/pinctrl-wmt.c
@@ -352,7 +352,7 @@ static int wmt_pctl_dt_node_to_map(struct pinctrl_dev *pctldev,
352 if (num_pulls) 352 if (num_pulls)
353 maps_per_pin++; 353 maps_per_pin++;
354 354
355 cur_map = maps = kzalloc(num_pins * maps_per_pin * sizeof(*maps), 355 cur_map = maps = kcalloc(num_pins * maps_per_pin, sizeof(*maps),
356 GFP_KERNEL); 356 GFP_KERNEL);
357 if (!maps) 357 if (!maps)
358 return -ENOMEM; 358 return -ENOMEM;
diff --git a/drivers/pinctrl/zte/pinctrl-zx.c b/drivers/pinctrl/zte/pinctrl-zx.c
index ded366bb6564..caa44dd2880a 100644
--- a/drivers/pinctrl/zte/pinctrl-zx.c
+++ b/drivers/pinctrl/zte/pinctrl-zx.c
@@ -277,7 +277,7 @@ static int zx_pinctrl_build_state(struct platform_device *pdev)
277 277
278 /* Every single pin composes a group */ 278 /* Every single pin composes a group */
279 ngroups = info->npins; 279 ngroups = info->npins;
280 groups = devm_kzalloc(&pdev->dev, ngroups * sizeof(*groups), 280 groups = devm_kcalloc(&pdev->dev, ngroups, sizeof(*groups),
281 GFP_KERNEL); 281 GFP_KERNEL);
282 if (!groups) 282 if (!groups)
283 return -ENOMEM; 283 return -ENOMEM;
@@ -362,8 +362,8 @@ static int zx_pinctrl_build_state(struct platform_device *pdev)
362 362
363 func = functions + j; 363 func = functions + j;
364 if (!func->group_names) { 364 if (!func->group_names) {
365 func->group_names = devm_kzalloc(&pdev->dev, 365 func->group_names = devm_kcalloc(&pdev->dev,
366 func->num_group_names * 366 func->num_group_names,
367 sizeof(*func->group_names), 367 sizeof(*func->group_names),
368 GFP_KERNEL); 368 GFP_KERNEL);
369 if (!func->group_names) { 369 if (!func->group_names) {
diff --git a/drivers/platform/mellanox/mlxreg-hotplug.c b/drivers/platform/mellanox/mlxreg-hotplug.c
index ea9e7f4479ca..36a41ff506f0 100644
--- a/drivers/platform/mellanox/mlxreg-hotplug.c
+++ b/drivers/platform/mellanox/mlxreg-hotplug.c
@@ -217,7 +217,8 @@ static int mlxreg_hotplug_attr_init(struct mlxreg_hotplug_priv_data *priv)
217 } 217 }
218 } 218 }
219 219
220 priv->group.attrs = devm_kzalloc(&priv->pdev->dev, num_attrs * 220 priv->group.attrs = devm_kcalloc(&priv->pdev->dev,
221 num_attrs,
221 sizeof(struct attribute *), 222 sizeof(struct attribute *),
222 GFP_KERNEL); 223 GFP_KERNEL);
223 if (!priv->group.attrs) 224 if (!priv->group.attrs)
diff --git a/drivers/platform/x86/alienware-wmi.c b/drivers/platform/x86/alienware-wmi.c
index 9d7dbd925065..d975462a4c57 100644
--- a/drivers/platform/x86/alienware-wmi.c
+++ b/drivers/platform/x86/alienware-wmi.c
@@ -458,19 +458,19 @@ static int alienware_zone_init(struct platform_device *dev)
458 * - zone_data num_zones is for the distinct zones 458 * - zone_data num_zones is for the distinct zones
459 */ 459 */
460 zone_dev_attrs = 460 zone_dev_attrs =
461 kzalloc(sizeof(struct device_attribute) * (quirks->num_zones + 1), 461 kcalloc(quirks->num_zones + 1, sizeof(struct device_attribute),
462 GFP_KERNEL); 462 GFP_KERNEL);
463 if (!zone_dev_attrs) 463 if (!zone_dev_attrs)
464 return -ENOMEM; 464 return -ENOMEM;
465 465
466 zone_attrs = 466 zone_attrs =
467 kzalloc(sizeof(struct attribute *) * (quirks->num_zones + 2), 467 kcalloc(quirks->num_zones + 2, sizeof(struct attribute *),
468 GFP_KERNEL); 468 GFP_KERNEL);
469 if (!zone_attrs) 469 if (!zone_attrs)
470 return -ENOMEM; 470 return -ENOMEM;
471 471
472 zone_data = 472 zone_data =
473 kzalloc(sizeof(struct platform_zone) * (quirks->num_zones), 473 kcalloc(quirks->num_zones, sizeof(struct platform_zone),
474 GFP_KERNEL); 474 GFP_KERNEL);
475 if (!zone_data) 475 if (!zone_data)
476 return -ENOMEM; 476 return -ENOMEM;
diff --git a/drivers/platform/x86/intel_ips.c b/drivers/platform/x86/intel_ips.c
index a0c95853fd3f..014fc1634a3d 100644
--- a/drivers/platform/x86/intel_ips.c
+++ b/drivers/platform/x86/intel_ips.c
@@ -964,12 +964,12 @@ static int ips_monitor(void *data)
964 u16 *mcp_samples, *ctv1_samples, *ctv2_samples, *mch_samples; 964 u16 *mcp_samples, *ctv1_samples, *ctv2_samples, *mch_samples;
965 u8 cur_seqno, last_seqno; 965 u8 cur_seqno, last_seqno;
966 966
967 mcp_samples = kzalloc(sizeof(u16) * IPS_SAMPLE_COUNT, GFP_KERNEL); 967 mcp_samples = kcalloc(IPS_SAMPLE_COUNT, sizeof(u16), GFP_KERNEL);
968 ctv1_samples = kzalloc(sizeof(u16) * IPS_SAMPLE_COUNT, GFP_KERNEL); 968 ctv1_samples = kcalloc(IPS_SAMPLE_COUNT, sizeof(u16), GFP_KERNEL);
969 ctv2_samples = kzalloc(sizeof(u16) * IPS_SAMPLE_COUNT, GFP_KERNEL); 969 ctv2_samples = kcalloc(IPS_SAMPLE_COUNT, sizeof(u16), GFP_KERNEL);
970 mch_samples = kzalloc(sizeof(u16) * IPS_SAMPLE_COUNT, GFP_KERNEL); 970 mch_samples = kcalloc(IPS_SAMPLE_COUNT, sizeof(u16), GFP_KERNEL);
971 cpu_samples = kzalloc(sizeof(u32) * IPS_SAMPLE_COUNT, GFP_KERNEL); 971 cpu_samples = kcalloc(IPS_SAMPLE_COUNT, sizeof(u32), GFP_KERNEL);
972 mchp_samples = kzalloc(sizeof(u32) * IPS_SAMPLE_COUNT, GFP_KERNEL); 972 mchp_samples = kcalloc(IPS_SAMPLE_COUNT, sizeof(u32), GFP_KERNEL);
973 if (!mcp_samples || !ctv1_samples || !ctv2_samples || !mch_samples || 973 if (!mcp_samples || !ctv1_samples || !ctv2_samples || !mch_samples ||
974 !cpu_samples || !mchp_samples) { 974 !cpu_samples || !mchp_samples) {
975 dev_err(ips->dev, 975 dev_err(ips->dev,
diff --git a/drivers/platform/x86/panasonic-laptop.c b/drivers/platform/x86/panasonic-laptop.c
index 5c39b3211709..8361ad75389a 100644
--- a/drivers/platform/x86/panasonic-laptop.c
+++ b/drivers/platform/x86/panasonic-laptop.c
@@ -571,7 +571,7 @@ static int acpi_pcc_hotkey_add(struct acpi_device *device)
571 return -ENOMEM; 571 return -ENOMEM;
572 } 572 }
573 573
574 pcc->sinf = kzalloc(sizeof(u32) * (num_sifr + 1), GFP_KERNEL); 574 pcc->sinf = kcalloc(num_sifr + 1, sizeof(u32), GFP_KERNEL);
575 if (!pcc->sinf) { 575 if (!pcc->sinf) {
576 result = -ENOMEM; 576 result = -ENOMEM;
577 goto out_hotkey; 577 goto out_hotkey;
diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
index da1ca4856ea1..ab2d28867c52 100644
--- a/drivers/platform/x86/thinkpad_acpi.c
+++ b/drivers/platform/x86/thinkpad_acpi.c
@@ -6006,7 +6006,7 @@ static int __init led_init(struct ibm_init_struct *iibm)
6006 if (led_supported == TPACPI_LED_NONE) 6006 if (led_supported == TPACPI_LED_NONE)
6007 return 1; 6007 return 1;
6008 6008
6009 tpacpi_leds = kzalloc(sizeof(*tpacpi_leds) * TPACPI_LED_NUMLEDS, 6009 tpacpi_leds = kcalloc(TPACPI_LED_NUMLEDS, sizeof(*tpacpi_leds),
6010 GFP_KERNEL); 6010 GFP_KERNEL);
6011 if (!tpacpi_leds) { 6011 if (!tpacpi_leds) {
6012 pr_err("Out of memory for LED data\n"); 6012 pr_err("Out of memory for LED data\n");
diff --git a/drivers/power/supply/charger-manager.c b/drivers/power/supply/charger-manager.c
index 2a50b4654793..faa1a67cf3d2 100644
--- a/drivers/power/supply/charger-manager.c
+++ b/drivers/power/supply/charger-manager.c
@@ -1380,7 +1380,7 @@ static int charger_manager_register_sysfs(struct charger_manager *cm)
1380 1380
1381 snprintf(buf, 10, "charger.%d", i); 1381 snprintf(buf, 10, "charger.%d", i);
1382 str = devm_kzalloc(cm->dev, 1382 str = devm_kzalloc(cm->dev,
1383 sizeof(char) * (strlen(buf) + 1), GFP_KERNEL); 1383 strlen(buf) + 1, GFP_KERNEL);
1384 if (!str) 1384 if (!str)
1385 return -ENOMEM; 1385 return -ENOMEM;
1386 1386
@@ -1522,8 +1522,10 @@ static struct charger_desc *of_cm_parse_desc(struct device *dev)
1522 of_property_read_u32(np, "cm-num-chargers", &num_chgs); 1522 of_property_read_u32(np, "cm-num-chargers", &num_chgs);
1523 if (num_chgs) { 1523 if (num_chgs) {
1524 /* Allocate empty bin at the tail of array */ 1524 /* Allocate empty bin at the tail of array */
1525 desc->psy_charger_stat = devm_kzalloc(dev, sizeof(char *) 1525 desc->psy_charger_stat = devm_kcalloc(dev,
1526 * (num_chgs + 1), GFP_KERNEL); 1526 num_chgs + 1,
1527 sizeof(char *),
1528 GFP_KERNEL);
1527 if (desc->psy_charger_stat) { 1529 if (desc->psy_charger_stat) {
1528 int i; 1530 int i;
1529 for (i = 0; i < num_chgs; i++) 1531 for (i = 0; i < num_chgs; i++)
@@ -1555,8 +1557,9 @@ static struct charger_desc *of_cm_parse_desc(struct device *dev)
1555 struct charger_regulator *chg_regs; 1557 struct charger_regulator *chg_regs;
1556 struct device_node *child; 1558 struct device_node *child;
1557 1559
1558 chg_regs = devm_kzalloc(dev, sizeof(*chg_regs) 1560 chg_regs = devm_kcalloc(dev,
1559 * desc->num_charger_regulators, 1561 desc->num_charger_regulators,
1562 sizeof(*chg_regs),
1560 GFP_KERNEL); 1563 GFP_KERNEL);
1561 if (!chg_regs) 1564 if (!chg_regs)
1562 return ERR_PTR(-ENOMEM); 1565 return ERR_PTR(-ENOMEM);
@@ -1573,9 +1576,10 @@ static struct charger_desc *of_cm_parse_desc(struct device *dev)
1573 /* charger cables */ 1576 /* charger cables */
1574 chg_regs->num_cables = of_get_child_count(child); 1577 chg_regs->num_cables = of_get_child_count(child);
1575 if (chg_regs->num_cables) { 1578 if (chg_regs->num_cables) {
1576 cables = devm_kzalloc(dev, sizeof(*cables) 1579 cables = devm_kcalloc(dev,
1577 * chg_regs->num_cables, 1580 chg_regs->num_cables,
1578 GFP_KERNEL); 1581 sizeof(*cables),
1582 GFP_KERNEL);
1579 if (!cables) { 1583 if (!cables) {
1580 of_node_put(child); 1584 of_node_put(child);
1581 return ERR_PTR(-ENOMEM); 1585 return ERR_PTR(-ENOMEM);
@@ -1725,10 +1729,11 @@ static int charger_manager_probe(struct platform_device *pdev)
1725 cm->charger_psy_desc.name = cm->psy_name_buf; 1729 cm->charger_psy_desc.name = cm->psy_name_buf;
1726 1730
1727 /* Allocate for psy properties because they may vary */ 1731 /* Allocate for psy properties because they may vary */
1728 cm->charger_psy_desc.properties = devm_kzalloc(&pdev->dev, 1732 cm->charger_psy_desc.properties =
1729 sizeof(enum power_supply_property) 1733 devm_kcalloc(&pdev->dev,
1730 * (ARRAY_SIZE(default_charger_props) + 1734 ARRAY_SIZE(default_charger_props) +
1731 NUM_CHARGER_PSY_OPTIONAL), GFP_KERNEL); 1735 NUM_CHARGER_PSY_OPTIONAL,
1736 sizeof(enum power_supply_property), GFP_KERNEL);
1732 if (!cm->charger_psy_desc.properties) 1737 if (!cm->charger_psy_desc.properties)
1733 return -ENOMEM; 1738 return -ENOMEM;
1734 1739
diff --git a/drivers/power/supply/power_supply_core.c b/drivers/power/supply/power_supply_core.c
index f57ab0a27301..d21f478741c1 100644
--- a/drivers/power/supply/power_supply_core.c
+++ b/drivers/power/supply/power_supply_core.c
@@ -263,8 +263,8 @@ static int power_supply_check_supplies(struct power_supply *psy)
263 if (!psy->supplied_from) 263 if (!psy->supplied_from)
264 return -ENOMEM; 264 return -ENOMEM;
265 265
266 *psy->supplied_from = devm_kzalloc(&psy->dev, 266 *psy->supplied_from = devm_kcalloc(&psy->dev,
267 sizeof(char *) * (cnt - 1), 267 cnt - 1, sizeof(char *),
268 GFP_KERNEL); 268 GFP_KERNEL);
269 if (!*psy->supplied_from) 269 if (!*psy->supplied_from)
270 return -ENOMEM; 270 return -ENOMEM;
diff --git a/drivers/power/supply/wm97xx_battery.c b/drivers/power/supply/wm97xx_battery.c
index bd4f66651513..6754e761778a 100644
--- a/drivers/power/supply/wm97xx_battery.c
+++ b/drivers/power/supply/wm97xx_battery.c
@@ -201,7 +201,7 @@ static int wm97xx_bat_probe(struct platform_device *dev)
201 if (pdata->min_voltage >= 0) 201 if (pdata->min_voltage >= 0)
202 props++; /* POWER_SUPPLY_PROP_VOLTAGE_MIN */ 202 props++; /* POWER_SUPPLY_PROP_VOLTAGE_MIN */
203 203
204 prop = kzalloc(props * sizeof(*prop), GFP_KERNEL); 204 prop = kcalloc(props, sizeof(*prop), GFP_KERNEL);
205 if (!prop) { 205 if (!prop) {
206 ret = -ENOMEM; 206 ret = -ENOMEM;
207 goto err3; 207 goto err3;
diff --git a/drivers/power/supply/z2_battery.c b/drivers/power/supply/z2_battery.c
index 8a43b49cfd35..bcc2d1a9b0a7 100644
--- a/drivers/power/supply/z2_battery.c
+++ b/drivers/power/supply/z2_battery.c
@@ -146,7 +146,7 @@ static int z2_batt_ps_init(struct z2_charger *charger, int props)
146 if (info->min_voltage >= 0) 146 if (info->min_voltage >= 0)
147 props++; /* POWER_SUPPLY_PROP_VOLTAGE_MIN */ 147 props++; /* POWER_SUPPLY_PROP_VOLTAGE_MIN */
148 148
149 prop = kzalloc(props * sizeof(*prop), GFP_KERNEL); 149 prop = kcalloc(props, sizeof(*prop), GFP_KERNEL);
150 if (!prop) 150 if (!prop)
151 return -ENOMEM; 151 return -ENOMEM;
152 152
diff --git a/drivers/powercap/powercap_sys.c b/drivers/powercap/powercap_sys.c
index 64b2b2501a79..9e2f274bd44f 100644
--- a/drivers/powercap/powercap_sys.c
+++ b/drivers/powercap/powercap_sys.c
@@ -545,15 +545,16 @@ struct powercap_zone *powercap_register_zone(
545 dev_set_name(&power_zone->dev, "%s:%x", 545 dev_set_name(&power_zone->dev, "%s:%x",
546 dev_name(power_zone->dev.parent), 546 dev_name(power_zone->dev.parent),
547 power_zone->id); 547 power_zone->id);
548 power_zone->constraints = kzalloc(sizeof(*power_zone->constraints) * 548 power_zone->constraints = kcalloc(nr_constraints,
549 nr_constraints, GFP_KERNEL); 549 sizeof(*power_zone->constraints),
550 GFP_KERNEL);
550 if (!power_zone->constraints) 551 if (!power_zone->constraints)
551 goto err_const_alloc; 552 goto err_const_alloc;
552 553
553 nr_attrs = nr_constraints * POWERCAP_CONSTRAINTS_ATTRS + 554 nr_attrs = nr_constraints * POWERCAP_CONSTRAINTS_ATTRS +
554 POWERCAP_ZONE_MAX_ATTRS + 1; 555 POWERCAP_ZONE_MAX_ATTRS + 1;
555 power_zone->zone_dev_attrs = kzalloc(sizeof(void *) * 556 power_zone->zone_dev_attrs = kcalloc(nr_attrs, sizeof(void *),
556 nr_attrs, GFP_KERNEL); 557 GFP_KERNEL);
557 if (!power_zone->zone_dev_attrs) 558 if (!power_zone->zone_dev_attrs)
558 goto err_attr_alloc; 559 goto err_attr_alloc;
559 create_power_zone_common_attributes(power_zone); 560 create_power_zone_common_attributes(power_zone);
diff --git a/drivers/pwm/pwm-lp3943.c b/drivers/pwm/pwm-lp3943.c
index 52584e9962ed..15b40a8bc4fb 100644
--- a/drivers/pwm/pwm-lp3943.c
+++ b/drivers/pwm/pwm-lp3943.c
@@ -225,7 +225,7 @@ static int lp3943_pwm_parse_dt(struct device *dev,
225 if (num_outputs == 0) 225 if (num_outputs == 0)
226 continue; 226 continue;
227 227
228 output = devm_kzalloc(dev, sizeof(*output) * num_outputs, 228 output = devm_kcalloc(dev, num_outputs, sizeof(*output),
229 GFP_KERNEL); 229 GFP_KERNEL);
230 if (!output) 230 if (!output)
231 return -ENOMEM; 231 return -ENOMEM;
diff --git a/drivers/rapidio/devices/rio_mport_cdev.c b/drivers/rapidio/devices/rio_mport_cdev.c
index 0434ab7b6497..a8cb8d2f2abb 100644
--- a/drivers/rapidio/devices/rio_mport_cdev.c
+++ b/drivers/rapidio/devices/rio_mport_cdev.c
@@ -975,7 +975,7 @@ static int rio_mport_transfer_ioctl(struct file *filp, void __user *arg)
975 priv->md->properties.transfer_mode) == 0) 975 priv->md->properties.transfer_mode) == 0)
976 return -ENODEV; 976 return -ENODEV;
977 977
978 transfer = vmalloc(transaction.count * sizeof(*transfer)); 978 transfer = vmalloc(array_size(sizeof(*transfer), transaction.count));
979 if (!transfer) 979 if (!transfer)
980 return -ENOMEM; 980 return -ENOMEM;
981 981
diff --git a/drivers/rapidio/rio-scan.c b/drivers/rapidio/rio-scan.c
index 161b927d9de1..fd7b517132ac 100644
--- a/drivers/rapidio/rio-scan.c
+++ b/drivers/rapidio/rio-scan.c
@@ -425,9 +425,9 @@ static struct rio_dev *rio_setup_device(struct rio_net *net,
425 rswitch = rdev->rswitch; 425 rswitch = rdev->rswitch;
426 rswitch->port_ok = 0; 426 rswitch->port_ok = 0;
427 spin_lock_init(&rswitch->lock); 427 spin_lock_init(&rswitch->lock);
428 rswitch->route_table = kzalloc(sizeof(u8)* 428 rswitch->route_table =
429 RIO_MAX_ROUTE_ENTRIES(port->sys_size), 429 kzalloc(RIO_MAX_ROUTE_ENTRIES(port->sys_size),
430 GFP_KERNEL); 430 GFP_KERNEL);
431 if (!rswitch->route_table) 431 if (!rswitch->route_table)
432 goto cleanup; 432 goto cleanup;
433 /* Initialize switch route table */ 433 /* Initialize switch route table */
diff --git a/drivers/regulator/act8865-regulator.c b/drivers/regulator/act8865-regulator.c
index 7652477e6a9d..21e20483bd91 100644
--- a/drivers/regulator/act8865-regulator.c
+++ b/drivers/regulator/act8865-regulator.c
@@ -424,9 +424,10 @@ static int act8865_pdata_from_dt(struct device *dev,
424 if (matched <= 0) 424 if (matched <= 0)
425 return matched; 425 return matched;
426 426
427 pdata->regulators = devm_kzalloc(dev, 427 pdata->regulators = devm_kcalloc(dev,
428 sizeof(struct act8865_regulator_data) * 428 num_matches,
429 num_matches, GFP_KERNEL); 429 sizeof(struct act8865_regulator_data),
430 GFP_KERNEL);
430 if (!pdata->regulators) 431 if (!pdata->regulators)
431 return -ENOMEM; 432 return -ENOMEM;
432 433
diff --git a/drivers/regulator/as3711-regulator.c b/drivers/regulator/as3711-regulator.c
index 874d415d6b4f..565a71343a8e 100644
--- a/drivers/regulator/as3711-regulator.c
+++ b/drivers/regulator/as3711-regulator.c
@@ -239,8 +239,10 @@ static int as3711_regulator_probe(struct platform_device *pdev)
239 } 239 }
240 } 240 }
241 241
242 regs = devm_kzalloc(&pdev->dev, AS3711_REGULATOR_NUM * 242 regs = devm_kcalloc(&pdev->dev,
243 sizeof(struct as3711_regulator), GFP_KERNEL); 243 AS3711_REGULATOR_NUM,
244 sizeof(struct as3711_regulator),
245 GFP_KERNEL);
244 if (!regs) 246 if (!regs)
245 return -ENOMEM; 247 return -ENOMEM;
246 248
diff --git a/drivers/regulator/bcm590xx-regulator.c b/drivers/regulator/bcm590xx-regulator.c
index 9dd715407b39..92d6d7b10cf7 100644
--- a/drivers/regulator/bcm590xx-regulator.c
+++ b/drivers/regulator/bcm590xx-regulator.c
@@ -383,8 +383,10 @@ static int bcm590xx_probe(struct platform_device *pdev)
383 383
384 platform_set_drvdata(pdev, pmu); 384 platform_set_drvdata(pdev, pmu);
385 385
386 pmu->desc = devm_kzalloc(&pdev->dev, BCM590XX_NUM_REGS * 386 pmu->desc = devm_kcalloc(&pdev->dev,
387 sizeof(struct regulator_desc), GFP_KERNEL); 387 BCM590XX_NUM_REGS,
388 sizeof(struct regulator_desc),
389 GFP_KERNEL);
388 if (!pmu->desc) 390 if (!pmu->desc)
389 return -ENOMEM; 391 return -ENOMEM;
390 392
diff --git a/drivers/regulator/da9063-regulator.c b/drivers/regulator/da9063-regulator.c
index 6a8f9cd69f52..2df26f36c687 100644
--- a/drivers/regulator/da9063-regulator.c
+++ b/drivers/regulator/da9063-regulator.c
@@ -681,8 +681,8 @@ static struct da9063_regulators_pdata *da9063_parse_regulators_dt(
681 if (!pdata) 681 if (!pdata)
682 return ERR_PTR(-ENOMEM); 682 return ERR_PTR(-ENOMEM);
683 683
684 pdata->regulator_data = devm_kzalloc(&pdev->dev, 684 pdata->regulator_data = devm_kcalloc(&pdev->dev,
685 num * sizeof(*pdata->regulator_data), 685 num, sizeof(*pdata->regulator_data),
686 GFP_KERNEL); 686 GFP_KERNEL);
687 if (!pdata->regulator_data) 687 if (!pdata->regulator_data)
688 return ERR_PTR(-ENOMEM); 688 return ERR_PTR(-ENOMEM);
diff --git a/drivers/regulator/gpio-regulator.c b/drivers/regulator/gpio-regulator.c
index a86b8997bb54..b2f5ec4f658a 100644
--- a/drivers/regulator/gpio-regulator.c
+++ b/drivers/regulator/gpio-regulator.c
@@ -172,8 +172,8 @@ of_get_gpio_regulator_config(struct device *dev, struct device_node *np,
172 172
173 if (ret > 0) { 173 if (ret > 0) {
174 config->nr_gpios = ret; 174 config->nr_gpios = ret;
175 config->gpios = devm_kzalloc(dev, 175 config->gpios = devm_kcalloc(dev,
176 sizeof(struct gpio) * config->nr_gpios, 176 config->nr_gpios, sizeof(struct gpio),
177 GFP_KERNEL); 177 GFP_KERNEL);
178 if (!config->gpios) 178 if (!config->gpios)
179 return ERR_PTR(-ENOMEM); 179 return ERR_PTR(-ENOMEM);
@@ -214,9 +214,9 @@ of_get_gpio_regulator_config(struct device *dev, struct device_node *np,
214 return ERR_PTR(-EINVAL); 214 return ERR_PTR(-EINVAL);
215 } 215 }
216 216
217 config->states = devm_kzalloc(dev, 217 config->states = devm_kcalloc(dev,
218 sizeof(struct gpio_regulator_state) 218 proplen / 2,
219 * (proplen / 2), 219 sizeof(struct gpio_regulator_state),
220 GFP_KERNEL); 220 GFP_KERNEL);
221 if (!config->states) 221 if (!config->states)
222 return ERR_PTR(-ENOMEM); 222 return ERR_PTR(-ENOMEM);
diff --git a/drivers/regulator/max1586.c b/drivers/regulator/max1586.c
index 66bbaa999433..cc52779b53f7 100644
--- a/drivers/regulator/max1586.c
+++ b/drivers/regulator/max1586.c
@@ -194,8 +194,10 @@ static int of_get_max1586_platform_data(struct device *dev,
194 if (matched <= 0) 194 if (matched <= 0)
195 return matched; 195 return matched;
196 196
197 pdata->subdevs = devm_kzalloc(dev, sizeof(struct max1586_subdev_data) * 197 pdata->subdevs = devm_kcalloc(dev,
198 matched, GFP_KERNEL); 198 matched,
199 sizeof(struct max1586_subdev_data),
200 GFP_KERNEL);
199 if (!pdata->subdevs) 201 if (!pdata->subdevs)
200 return -ENOMEM; 202 return -ENOMEM;
201 203
diff --git a/drivers/regulator/max8660.c b/drivers/regulator/max8660.c
index a6183425f27d..4cf6897a401f 100644
--- a/drivers/regulator/max8660.c
+++ b/drivers/regulator/max8660.c
@@ -351,8 +351,10 @@ static int max8660_pdata_from_dt(struct device *dev,
351 if (matched <= 0) 351 if (matched <= 0)
352 return matched; 352 return matched;
353 353
354 pdata->subdevs = devm_kzalloc(dev, sizeof(struct max8660_subdev_data) * 354 pdata->subdevs = devm_kcalloc(dev,
355 matched, GFP_KERNEL); 355 matched,
356 sizeof(struct max8660_subdev_data),
357 GFP_KERNEL);
356 if (!pdata->subdevs) 358 if (!pdata->subdevs)
357 return -ENOMEM; 359 return -ENOMEM;
358 360
diff --git a/drivers/regulator/max8997-regulator.c b/drivers/regulator/max8997-regulator.c
index 559b9ac45404..a8ea30ee18a6 100644
--- a/drivers/regulator/max8997-regulator.c
+++ b/drivers/regulator/max8997-regulator.c
@@ -929,8 +929,9 @@ static int max8997_pmic_dt_parse_pdata(struct platform_device *pdev,
929 /* count the number of regulators to be supported in pmic */ 929 /* count the number of regulators to be supported in pmic */
930 pdata->num_regulators = of_get_child_count(regulators_np); 930 pdata->num_regulators = of_get_child_count(regulators_np);
931 931
932 rdata = devm_kzalloc(&pdev->dev, sizeof(*rdata) * 932 rdata = devm_kcalloc(&pdev->dev,
933 pdata->num_regulators, GFP_KERNEL); 933 pdata->num_regulators, sizeof(*rdata),
934 GFP_KERNEL);
934 if (!rdata) { 935 if (!rdata) {
935 of_node_put(regulators_np); 936 of_node_put(regulators_np);
936 return -ENOMEM; 937 return -ENOMEM;
diff --git a/drivers/regulator/max8998.c b/drivers/regulator/max8998.c
index 6a2b61c012b5..6b9f262ebbb0 100644
--- a/drivers/regulator/max8998.c
+++ b/drivers/regulator/max8998.c
@@ -670,8 +670,9 @@ static int max8998_pmic_dt_parse_pdata(struct max8998_dev *iodev,
670 /* count the number of regulators to be supported in pmic */ 670 /* count the number of regulators to be supported in pmic */
671 pdata->num_regulators = of_get_child_count(regulators_np); 671 pdata->num_regulators = of_get_child_count(regulators_np);
672 672
673 rdata = devm_kzalloc(iodev->dev, sizeof(*rdata) * 673 rdata = devm_kcalloc(iodev->dev,
674 pdata->num_regulators, GFP_KERNEL); 674 pdata->num_regulators, sizeof(*rdata),
675 GFP_KERNEL);
675 if (!rdata) { 676 if (!rdata) {
676 of_node_put(regulators_np); 677 of_node_put(regulators_np);
677 return -ENOMEM; 678 return -ENOMEM;
diff --git a/drivers/regulator/mc13xxx-regulator-core.c b/drivers/regulator/mc13xxx-regulator-core.c
index 41271aeea63e..da4fb9824757 100644
--- a/drivers/regulator/mc13xxx-regulator-core.c
+++ b/drivers/regulator/mc13xxx-regulator-core.c
@@ -171,7 +171,7 @@ struct mc13xxx_regulator_init_data *mc13xxx_parse_regulators_dt(
171 if (!parent) 171 if (!parent)
172 return NULL; 172 return NULL;
173 173
174 data = devm_kzalloc(&pdev->dev, sizeof(*data) * priv->num_regulators, 174 data = devm_kcalloc(&pdev->dev, priv->num_regulators, sizeof(*data),
175 GFP_KERNEL); 175 GFP_KERNEL);
176 if (!data) { 176 if (!data) {
177 of_node_put(parent); 177 of_node_put(parent);
diff --git a/drivers/regulator/pbias-regulator.c b/drivers/regulator/pbias-regulator.c
index 8f782d22fdbe..92b41a6a4dc2 100644
--- a/drivers/regulator/pbias-regulator.c
+++ b/drivers/regulator/pbias-regulator.c
@@ -173,8 +173,9 @@ static int pbias_regulator_probe(struct platform_device *pdev)
173 if (count < 0) 173 if (count < 0)
174 return count; 174 return count;
175 175
176 drvdata = devm_kzalloc(&pdev->dev, sizeof(struct pbias_regulator_data) 176 drvdata = devm_kcalloc(&pdev->dev,
177 * count, GFP_KERNEL); 177 count, sizeof(struct pbias_regulator_data),
178 GFP_KERNEL);
178 if (!drvdata) 179 if (!drvdata)
179 return -ENOMEM; 180 return -ENOMEM;
180 181
diff --git a/drivers/regulator/rc5t583-regulator.c b/drivers/regulator/rc5t583-regulator.c
index d0f1340168b1..2ec51af43673 100644
--- a/drivers/regulator/rc5t583-regulator.c
+++ b/drivers/regulator/rc5t583-regulator.c
@@ -132,8 +132,10 @@ static int rc5t583_regulator_probe(struct platform_device *pdev)
132 return -ENODEV; 132 return -ENODEV;
133 } 133 }
134 134
135 regs = devm_kzalloc(&pdev->dev, RC5T583_REGULATOR_MAX * 135 regs = devm_kcalloc(&pdev->dev,
136 sizeof(struct rc5t583_regulator), GFP_KERNEL); 136 RC5T583_REGULATOR_MAX,
137 sizeof(struct rc5t583_regulator),
138 GFP_KERNEL);
137 if (!regs) 139 if (!regs)
138 return -ENOMEM; 140 return -ENOMEM;
139 141
diff --git a/drivers/regulator/s2mps11.c b/drivers/regulator/s2mps11.c
index 7726b874e539..d1207ec683db 100644
--- a/drivers/regulator/s2mps11.c
+++ b/drivers/regulator/s2mps11.c
@@ -1139,8 +1139,8 @@ static int s2mps11_pmic_probe(struct platform_device *pdev)
1139 return -EINVAL; 1139 return -EINVAL;
1140 } 1140 }
1141 1141
1142 s2mps11->ext_control_gpio = devm_kmalloc(&pdev->dev, 1142 s2mps11->ext_control_gpio = devm_kmalloc_array(&pdev->dev,
1143 sizeof(*s2mps11->ext_control_gpio) * rdev_num, 1143 rdev_num, sizeof(*s2mps11->ext_control_gpio),
1144 GFP_KERNEL); 1144 GFP_KERNEL);
1145 if (!s2mps11->ext_control_gpio) 1145 if (!s2mps11->ext_control_gpio)
1146 return -ENOMEM; 1146 return -ENOMEM;
@@ -1162,7 +1162,7 @@ static int s2mps11_pmic_probe(struct platform_device *pdev)
1162 } 1162 }
1163 } 1163 }
1164 1164
1165 rdata = kzalloc(sizeof(*rdata) * rdev_num, GFP_KERNEL); 1165 rdata = kcalloc(rdev_num, sizeof(*rdata), GFP_KERNEL);
1166 if (!rdata) 1166 if (!rdata)
1167 return -ENOMEM; 1167 return -ENOMEM;
1168 1168
diff --git a/drivers/regulator/s5m8767.c b/drivers/regulator/s5m8767.c
index b8443a360646..0cbc980753c2 100644
--- a/drivers/regulator/s5m8767.c
+++ b/drivers/regulator/s5m8767.c
@@ -553,13 +553,15 @@ static int s5m8767_pmic_dt_parse_pdata(struct platform_device *pdev,
553 /* count the number of regulators to be supported in pmic */ 553 /* count the number of regulators to be supported in pmic */
554 pdata->num_regulators = of_get_child_count(regulators_np); 554 pdata->num_regulators = of_get_child_count(regulators_np);
555 555
556 rdata = devm_kzalloc(&pdev->dev, sizeof(*rdata) * 556 rdata = devm_kcalloc(&pdev->dev,
557 pdata->num_regulators, GFP_KERNEL); 557 pdata->num_regulators, sizeof(*rdata),
558 GFP_KERNEL);
558 if (!rdata) 559 if (!rdata)
559 return -ENOMEM; 560 return -ENOMEM;
560 561
561 rmode = devm_kzalloc(&pdev->dev, sizeof(*rmode) * 562 rmode = devm_kcalloc(&pdev->dev,
562 pdata->num_regulators, GFP_KERNEL); 563 pdata->num_regulators, sizeof(*rmode),
564 GFP_KERNEL);
563 if (!rmode) 565 if (!rmode)
564 return -ENOMEM; 566 return -ENOMEM;
565 567
diff --git a/drivers/regulator/ti-abb-regulator.c b/drivers/regulator/ti-abb-regulator.c
index d2f994298753..cced1ffb896c 100644
--- a/drivers/regulator/ti-abb-regulator.c
+++ b/drivers/regulator/ti-abb-regulator.c
@@ -532,13 +532,13 @@ static int ti_abb_init_table(struct device *dev, struct ti_abb *abb,
532 } 532 }
533 num_entries /= num_values; 533 num_entries /= num_values;
534 534
535 info = devm_kzalloc(dev, sizeof(*info) * num_entries, GFP_KERNEL); 535 info = devm_kcalloc(dev, num_entries, sizeof(*info), GFP_KERNEL);
536 if (!info) 536 if (!info)
537 return -ENOMEM; 537 return -ENOMEM;
538 538
539 abb->info = info; 539 abb->info = info;
540 540
541 volt_table = devm_kzalloc(dev, sizeof(unsigned int) * num_entries, 541 volt_table = devm_kcalloc(dev, num_entries, sizeof(unsigned int),
542 GFP_KERNEL); 542 GFP_KERNEL);
543 if (!volt_table) 543 if (!volt_table)
544 return -ENOMEM; 544 return -ENOMEM;
diff --git a/drivers/regulator/tps65090-regulator.c b/drivers/regulator/tps65090-regulator.c
index 2d398fa3b720..edaef9e4dc74 100644
--- a/drivers/regulator/tps65090-regulator.c
+++ b/drivers/regulator/tps65090-regulator.c
@@ -331,8 +331,9 @@ static struct tps65090_platform_data *tps65090_parse_dt_reg_data(
331 if (!tps65090_pdata) 331 if (!tps65090_pdata)
332 return ERR_PTR(-ENOMEM); 332 return ERR_PTR(-ENOMEM);
333 333
334 reg_pdata = devm_kzalloc(&pdev->dev, TPS65090_REGULATOR_MAX * 334 reg_pdata = devm_kcalloc(&pdev->dev,
335 sizeof(*reg_pdata), GFP_KERNEL); 335 TPS65090_REGULATOR_MAX, sizeof(*reg_pdata),
336 GFP_KERNEL);
336 if (!reg_pdata) 337 if (!reg_pdata)
337 return ERR_PTR(-ENOMEM); 338 return ERR_PTR(-ENOMEM);
338 339
@@ -429,8 +430,9 @@ static int tps65090_regulator_probe(struct platform_device *pdev)
429 return tps65090_pdata ? PTR_ERR(tps65090_pdata) : -EINVAL; 430 return tps65090_pdata ? PTR_ERR(tps65090_pdata) : -EINVAL;
430 } 431 }
431 432
432 pmic = devm_kzalloc(&pdev->dev, TPS65090_REGULATOR_MAX * sizeof(*pmic), 433 pmic = devm_kcalloc(&pdev->dev,
433 GFP_KERNEL); 434 TPS65090_REGULATOR_MAX, sizeof(*pmic),
435 GFP_KERNEL);
434 if (!pmic) 436 if (!pmic)
435 return -ENOMEM; 437 return -ENOMEM;
436 438
diff --git a/drivers/regulator/tps65217-regulator.c b/drivers/regulator/tps65217-regulator.c
index 7b12e880d1ea..fc12badf3805 100644
--- a/drivers/regulator/tps65217-regulator.c
+++ b/drivers/regulator/tps65217-regulator.c
@@ -229,8 +229,9 @@ static int tps65217_regulator_probe(struct platform_device *pdev)
229 unsigned int val; 229 unsigned int val;
230 230
231 /* Allocate memory for strobes */ 231 /* Allocate memory for strobes */
232 tps->strobes = devm_kzalloc(&pdev->dev, sizeof(u8) * 232 tps->strobes = devm_kcalloc(&pdev->dev,
233 TPS65217_NUM_REGULATOR, GFP_KERNEL); 233 TPS65217_NUM_REGULATOR, sizeof(u8),
234 GFP_KERNEL);
234 235
235 platform_set_drvdata(pdev, tps); 236 platform_set_drvdata(pdev, tps);
236 237
diff --git a/drivers/regulator/tps65218-regulator.c b/drivers/regulator/tps65218-regulator.c
index 1827185beacc..6209beee1018 100644
--- a/drivers/regulator/tps65218-regulator.c
+++ b/drivers/regulator/tps65218-regulator.c
@@ -324,8 +324,9 @@ static int tps65218_regulator_probe(struct platform_device *pdev)
324 config.regmap = tps->regmap; 324 config.regmap = tps->regmap;
325 325
326 /* Allocate memory for strobes */ 326 /* Allocate memory for strobes */
327 tps->strobes = devm_kzalloc(&pdev->dev, sizeof(u8) * 327 tps->strobes = devm_kcalloc(&pdev->dev,
328 TPS65218_NUM_REGULATOR, GFP_KERNEL); 328 TPS65218_NUM_REGULATOR, sizeof(u8),
329 GFP_KERNEL);
329 if (!tps->strobes) 330 if (!tps->strobes)
330 return -ENOMEM; 331 return -ENOMEM;
331 332
diff --git a/drivers/regulator/tps65910-regulator.c b/drivers/regulator/tps65910-regulator.c
index 81672a58fcc2..02ccdaa226a7 100644
--- a/drivers/regulator/tps65910-regulator.c
+++ b/drivers/regulator/tps65910-regulator.c
@@ -1131,18 +1131,24 @@ static int tps65910_probe(struct platform_device *pdev)
1131 return -ENODEV; 1131 return -ENODEV;
1132 } 1132 }
1133 1133
1134 pmic->desc = devm_kzalloc(&pdev->dev, pmic->num_regulators * 1134 pmic->desc = devm_kcalloc(&pdev->dev,
1135 sizeof(struct regulator_desc), GFP_KERNEL); 1135 pmic->num_regulators,
1136 sizeof(struct regulator_desc),
1137 GFP_KERNEL);
1136 if (!pmic->desc) 1138 if (!pmic->desc)
1137 return -ENOMEM; 1139 return -ENOMEM;
1138 1140
1139 pmic->info = devm_kzalloc(&pdev->dev, pmic->num_regulators * 1141 pmic->info = devm_kcalloc(&pdev->dev,
1140 sizeof(struct tps_info *), GFP_KERNEL); 1142 pmic->num_regulators,
1143 sizeof(struct tps_info *),
1144 GFP_KERNEL);
1141 if (!pmic->info) 1145 if (!pmic->info)
1142 return -ENOMEM; 1146 return -ENOMEM;
1143 1147
1144 pmic->rdev = devm_kzalloc(&pdev->dev, pmic->num_regulators * 1148 pmic->rdev = devm_kcalloc(&pdev->dev,
1145 sizeof(struct regulator_dev *), GFP_KERNEL); 1149 pmic->num_regulators,
1150 sizeof(struct regulator_dev *),
1151 GFP_KERNEL);
1146 if (!pmic->rdev) 1152 if (!pmic->rdev)
1147 return -ENOMEM; 1153 return -ENOMEM;
1148 1154
diff --git a/drivers/regulator/tps80031-regulator.c b/drivers/regulator/tps80031-regulator.c
index d4cc60ad18ae..1001147404c3 100644
--- a/drivers/regulator/tps80031-regulator.c
+++ b/drivers/regulator/tps80031-regulator.c
@@ -691,8 +691,8 @@ static int tps80031_regulator_probe(struct platform_device *pdev)
691 return -EINVAL; 691 return -EINVAL;
692 } 692 }
693 693
694 pmic = devm_kzalloc(&pdev->dev, 694 pmic = devm_kcalloc(&pdev->dev,
695 TPS80031_REGULATOR_MAX * sizeof(*pmic), GFP_KERNEL); 695 TPS80031_REGULATOR_MAX, sizeof(*pmic), GFP_KERNEL);
696 if (!pmic) 696 if (!pmic)
697 return -ENOMEM; 697 return -ENOMEM;
698 698
diff --git a/drivers/reset/reset-ti-syscon.c b/drivers/reset/reset-ti-syscon.c
index 99520b0a1329..a2635c21db7f 100644
--- a/drivers/reset/reset-ti-syscon.c
+++ b/drivers/reset/reset-ti-syscon.c
@@ -189,7 +189,8 @@ static int ti_syscon_reset_probe(struct platform_device *pdev)
189 } 189 }
190 190
191 nr_controls = (size / sizeof(*list)) / 7; 191 nr_controls = (size / sizeof(*list)) / 7;
192 controls = devm_kzalloc(dev, nr_controls * sizeof(*controls), GFP_KERNEL); 192 controls = devm_kcalloc(dev, nr_controls, sizeof(*controls),
193 GFP_KERNEL);
193 if (!controls) 194 if (!controls)
194 return -ENOMEM; 195 return -ENOMEM;
195 196
diff --git a/drivers/s390/block/dasd_eer.c b/drivers/s390/block/dasd_eer.c
index fb2c3599d95c..0af8c5295b65 100644
--- a/drivers/s390/block/dasd_eer.c
+++ b/drivers/s390/block/dasd_eer.c
@@ -561,8 +561,8 @@ static int dasd_eer_open(struct inode *inp, struct file *filp)
561 return -EINVAL; 561 return -EINVAL;
562 } 562 }
563 eerb->buffersize = eerb->buffer_page_count * PAGE_SIZE; 563 eerb->buffersize = eerb->buffer_page_count * PAGE_SIZE;
564 eerb->buffer = kmalloc(eerb->buffer_page_count * sizeof(char *), 564 eerb->buffer = kmalloc_array(eerb->buffer_page_count, sizeof(char *),
565 GFP_KERNEL); 565 GFP_KERNEL);
566 if (!eerb->buffer) { 566 if (!eerb->buffer) {
567 kfree(eerb); 567 kfree(eerb);
568 return -ENOMEM; 568 return -ENOMEM;
diff --git a/drivers/s390/block/dcssblk.c b/drivers/s390/block/dcssblk.c
index 29024492b8ed..ed607288e696 100644
--- a/drivers/s390/block/dcssblk.c
+++ b/drivers/s390/block/dcssblk.c
@@ -238,9 +238,9 @@ dcssblk_is_continuous(struct dcssblk_dev_info *dev_info)
238 if (dev_info->num_of_segments <= 1) 238 if (dev_info->num_of_segments <= 1)
239 return 0; 239 return 0;
240 240
241 sort_list = kzalloc( 241 sort_list = kcalloc(dev_info->num_of_segments,
242 sizeof(struct segment_info) * dev_info->num_of_segments, 242 sizeof(struct segment_info),
243 GFP_KERNEL); 243 GFP_KERNEL);
244 if (sort_list == NULL) 244 if (sort_list == NULL)
245 return -ENOMEM; 245 return -ENOMEM;
246 i = 0; 246 i = 0;
diff --git a/drivers/s390/char/keyboard.c b/drivers/s390/char/keyboard.c
index db1fbf9b00b5..79eb60958015 100644
--- a/drivers/s390/char/keyboard.c
+++ b/drivers/s390/char/keyboard.c
@@ -78,7 +78,7 @@ kbd_alloc(void) {
78 } 78 }
79 } 79 }
80 kbd->fn_handler = 80 kbd->fn_handler =
81 kzalloc(sizeof(fn_handler_fn *) * NR_FN_HANDLER, GFP_KERNEL); 81 kcalloc(NR_FN_HANDLER, sizeof(fn_handler_fn *), GFP_KERNEL);
82 if (!kbd->fn_handler) 82 if (!kbd->fn_handler)
83 goto out_func; 83 goto out_func;
84 kbd->accent_table = kmemdup(ebc_accent_table, 84 kbd->accent_table = kmemdup(ebc_accent_table,
diff --git a/drivers/s390/char/sclp_sd.c b/drivers/s390/char/sclp_sd.c
index 99f41db5123b..1e244f78f192 100644
--- a/drivers/s390/char/sclp_sd.c
+++ b/drivers/s390/char/sclp_sd.c
@@ -300,7 +300,7 @@ static int sclp_sd_store_data(struct sclp_sd_data *result, u8 di)
300 goto out_result; 300 goto out_result;
301 301
302 /* Allocate memory */ 302 /* Allocate memory */
303 data = vzalloc((size_t) dsize * PAGE_SIZE); 303 data = vzalloc(array_size((size_t)dsize, PAGE_SIZE));
304 if (!data) { 304 if (!data) {
305 rc = -ENOMEM; 305 rc = -ENOMEM;
306 goto out; 306 goto out;
diff --git a/drivers/s390/char/tty3270.c b/drivers/s390/char/tty3270.c
index 1c98023cffd4..5b8af2782282 100644
--- a/drivers/s390/char/tty3270.c
+++ b/drivers/s390/char/tty3270.c
@@ -719,7 +719,8 @@ tty3270_alloc_view(void)
719 if (!tp) 719 if (!tp)
720 goto out_err; 720 goto out_err;
721 tp->freemem_pages = 721 tp->freemem_pages =
722 kmalloc(sizeof(void *) * TTY3270_STRING_PAGES, GFP_KERNEL); 722 kmalloc_array(TTY3270_STRING_PAGES, sizeof(void *),
723 GFP_KERNEL);
723 if (!tp->freemem_pages) 724 if (!tp->freemem_pages)
724 goto out_tp; 725 goto out_tp;
725 INIT_LIST_HEAD(&tp->freemem); 726 INIT_LIST_HEAD(&tp->freemem);
diff --git a/drivers/s390/char/vmur.c b/drivers/s390/char/vmur.c
index 52aa89424318..cbde65ab2170 100644
--- a/drivers/s390/char/vmur.c
+++ b/drivers/s390/char/vmur.c
@@ -242,7 +242,7 @@ static struct ccw1 *alloc_chan_prog(const char __user *ubuf, int rec_count,
242 * That means we allocate room for CCWs to cover count/reclen 242 * That means we allocate room for CCWs to cover count/reclen
243 * records plus a NOP. 243 * records plus a NOP.
244 */ 244 */
245 cpa = kzalloc((rec_count + 1) * sizeof(struct ccw1), 245 cpa = kcalloc(rec_count + 1, sizeof(struct ccw1),
246 GFP_KERNEL | GFP_DMA); 246 GFP_KERNEL | GFP_DMA);
247 if (!cpa) 247 if (!cpa)
248 return ERR_PTR(-ENOMEM); 248 return ERR_PTR(-ENOMEM);
diff --git a/drivers/s390/char/zcore.c b/drivers/s390/char/zcore.c
index 4369662cfff5..76d3c50bf078 100644
--- a/drivers/s390/char/zcore.c
+++ b/drivers/s390/char/zcore.c
@@ -152,7 +152,7 @@ static int zcore_memmap_open(struct inode *inode, struct file *filp)
152 char *buf; 152 char *buf;
153 int i = 0; 153 int i = 0;
154 154
155 buf = kzalloc(memblock.memory.cnt * CHUNK_INFO_SIZE, GFP_KERNEL); 155 buf = kcalloc(memblock.memory.cnt, CHUNK_INFO_SIZE, GFP_KERNEL);
156 if (!buf) { 156 if (!buf) {
157 return -ENOMEM; 157 return -ENOMEM;
158 } 158 }
diff --git a/drivers/s390/cio/qdio_setup.c b/drivers/s390/cio/qdio_setup.c
index 4c14ce428e92..78f1be41b05e 100644
--- a/drivers/s390/cio/qdio_setup.c
+++ b/drivers/s390/cio/qdio_setup.c
@@ -536,7 +536,7 @@ void qdio_print_subchannel_info(struct qdio_irq *irq_ptr,
536 536
537int qdio_enable_async_operation(struct qdio_output_q *outq) 537int qdio_enable_async_operation(struct qdio_output_q *outq)
538{ 538{
539 outq->aobs = kzalloc(sizeof(struct qaob *) * QDIO_MAX_BUFFERS_PER_Q, 539 outq->aobs = kcalloc(QDIO_MAX_BUFFERS_PER_Q, sizeof(struct qaob *),
540 GFP_ATOMIC); 540 GFP_ATOMIC);
541 if (!outq->aobs) { 541 if (!outq->aobs) {
542 outq->use_cq = 0; 542 outq->use_cq = 0;
diff --git a/drivers/s390/cio/qdio_thinint.c b/drivers/s390/cio/qdio_thinint.c
index 0787b587e4b8..07dea602205b 100644
--- a/drivers/s390/cio/qdio_thinint.c
+++ b/drivers/s390/cio/qdio_thinint.c
@@ -241,8 +241,9 @@ out:
241/* allocate non-shared indicators and shared indicator */ 241/* allocate non-shared indicators and shared indicator */
242int __init tiqdio_allocate_memory(void) 242int __init tiqdio_allocate_memory(void)
243{ 243{
244 q_indicators = kzalloc(sizeof(struct indicator_t) * TIQDIO_NR_INDICATORS, 244 q_indicators = kcalloc(TIQDIO_NR_INDICATORS,
245 GFP_KERNEL); 245 sizeof(struct indicator_t),
246 GFP_KERNEL);
246 if (!q_indicators) 247 if (!q_indicators)
247 return -ENOMEM; 248 return -ENOMEM;
248 return 0; 249 return 0;
diff --git a/drivers/s390/crypto/pkey_api.c b/drivers/s390/crypto/pkey_api.c
index ed80d00cdb6f..3929c8be8098 100644
--- a/drivers/s390/crypto/pkey_api.c
+++ b/drivers/s390/crypto/pkey_api.c
@@ -121,7 +121,7 @@ static int alloc_and_prep_cprbmem(size_t paramblen,
121 * allocate consecutive memory for request CPRB, request param 121 * allocate consecutive memory for request CPRB, request param
122 * block, reply CPRB and reply param block 122 * block, reply CPRB and reply param block
123 */ 123 */
124 cprbmem = kzalloc(2 * cprbplusparamblen, GFP_KERNEL); 124 cprbmem = kcalloc(2, cprbplusparamblen, GFP_KERNEL);
125 if (!cprbmem) 125 if (!cprbmem)
126 return -ENOMEM; 126 return -ENOMEM;
127 127
@@ -899,9 +899,9 @@ int pkey_findcard(const struct pkey_seckey *seckey,
899 return -EINVAL; 899 return -EINVAL;
900 900
901 /* fetch status of all crypto cards */ 901 /* fetch status of all crypto cards */
902 device_status = kmalloc(MAX_ZDEV_ENTRIES_EXT 902 device_status = kmalloc_array(MAX_ZDEV_ENTRIES_EXT,
903 * sizeof(struct zcrypt_device_status_ext), 903 sizeof(struct zcrypt_device_status_ext),
904 GFP_KERNEL); 904 GFP_KERNEL);
905 if (!device_status) 905 if (!device_status)
906 return -ENOMEM; 906 return -ENOMEM;
907 zcrypt_device_status_mask_ext(device_status); 907 zcrypt_device_status_mask_ext(device_status);
diff --git a/drivers/s390/net/ctcm_main.c b/drivers/s390/net/ctcm_main.c
index 7ce98b70cad3..7617d21cb296 100644
--- a/drivers/s390/net/ctcm_main.c
+++ b/drivers/s390/net/ctcm_main.c
@@ -1379,7 +1379,7 @@ static int add_channel(struct ccw_device *cdev, enum ctcm_channel_types type,
1379 } else 1379 } else
1380 ccw_num = 8; 1380 ccw_num = 8;
1381 1381
1382 ch->ccw = kzalloc(ccw_num * sizeof(struct ccw1), GFP_KERNEL | GFP_DMA); 1382 ch->ccw = kcalloc(ccw_num, sizeof(struct ccw1), GFP_KERNEL | GFP_DMA);
1383 if (ch->ccw == NULL) 1383 if (ch->ccw == NULL)
1384 goto nomem_return; 1384 goto nomem_return;
1385 1385
diff --git a/drivers/s390/net/qeth_core_main.c b/drivers/s390/net/qeth_core_main.c
index 9f28b6f2efc4..8e1474f1ffac 100644
--- a/drivers/s390/net/qeth_core_main.c
+++ b/drivers/s390/net/qeth_core_main.c
@@ -374,9 +374,10 @@ static int qeth_alloc_cq(struct qeth_card *card)
374 } 374 }
375 card->qdio.no_in_queues = 2; 375 card->qdio.no_in_queues = 2;
376 card->qdio.out_bufstates = 376 card->qdio.out_bufstates =
377 kzalloc(card->qdio.no_out_queues * 377 kcalloc(card->qdio.no_out_queues *
378 QDIO_MAX_BUFFERS_PER_Q * 378 QDIO_MAX_BUFFERS_PER_Q,
379 sizeof(struct qdio_outbuf_state), GFP_KERNEL); 379 sizeof(struct qdio_outbuf_state),
380 GFP_KERNEL);
380 outbuf_states = card->qdio.out_bufstates; 381 outbuf_states = card->qdio.out_bufstates;
381 if (outbuf_states == NULL) { 382 if (outbuf_states == NULL) {
382 rc = -1; 383 rc = -1;
@@ -2538,8 +2539,9 @@ static int qeth_alloc_qdio_buffers(struct qeth_card *card)
2538 2539
2539 /* outbound */ 2540 /* outbound */
2540 card->qdio.out_qs = 2541 card->qdio.out_qs =
2541 kzalloc(card->qdio.no_out_queues * 2542 kcalloc(card->qdio.no_out_queues,
2542 sizeof(struct qeth_qdio_out_q *), GFP_KERNEL); 2543 sizeof(struct qeth_qdio_out_q *),
2544 GFP_KERNEL);
2543 if (!card->qdio.out_qs) 2545 if (!card->qdio.out_qs)
2544 goto out_freepool; 2546 goto out_freepool;
2545 for (i = 0; i < card->qdio.no_out_queues; ++i) { 2547 for (i = 0; i < card->qdio.no_out_queues; ++i) {
@@ -4963,8 +4965,8 @@ static int qeth_qdio_establish(struct qeth_card *card)
4963 4965
4964 QETH_DBF_TEXT(SETUP, 2, "qdioest"); 4966 QETH_DBF_TEXT(SETUP, 2, "qdioest");
4965 4967
4966 qib_param_field = kzalloc(QDIO_MAX_BUFFERS_PER_Q * sizeof(char), 4968 qib_param_field = kzalloc(QDIO_MAX_BUFFERS_PER_Q,
4967 GFP_KERNEL); 4969 GFP_KERNEL);
4968 if (!qib_param_field) { 4970 if (!qib_param_field) {
4969 rc = -ENOMEM; 4971 rc = -ENOMEM;
4970 goto out_free_nothing; 4972 goto out_free_nothing;
@@ -4973,8 +4975,8 @@ static int qeth_qdio_establish(struct qeth_card *card)
4973 qeth_create_qib_param_field(card, qib_param_field); 4975 qeth_create_qib_param_field(card, qib_param_field);
4974 qeth_create_qib_param_field_blkt(card, qib_param_field); 4976 qeth_create_qib_param_field_blkt(card, qib_param_field);
4975 4977
4976 in_sbal_ptrs = kzalloc(card->qdio.no_in_queues * 4978 in_sbal_ptrs = kcalloc(card->qdio.no_in_queues * QDIO_MAX_BUFFERS_PER_Q,
4977 QDIO_MAX_BUFFERS_PER_Q * sizeof(void *), 4979 sizeof(void *),
4978 GFP_KERNEL); 4980 GFP_KERNEL);
4979 if (!in_sbal_ptrs) { 4981 if (!in_sbal_ptrs) {
4980 rc = -ENOMEM; 4982 rc = -ENOMEM;
@@ -4985,7 +4987,7 @@ static int qeth_qdio_establish(struct qeth_card *card)
4985 virt_to_phys(card->qdio.in_q->bufs[i].buffer); 4987 virt_to_phys(card->qdio.in_q->bufs[i].buffer);
4986 } 4988 }
4987 4989
4988 queue_start_poll = kzalloc(sizeof(void *) * card->qdio.no_in_queues, 4990 queue_start_poll = kcalloc(card->qdio.no_in_queues, sizeof(void *),
4989 GFP_KERNEL); 4991 GFP_KERNEL);
4990 if (!queue_start_poll) { 4992 if (!queue_start_poll) {
4991 rc = -ENOMEM; 4993 rc = -ENOMEM;
@@ -4997,8 +4999,9 @@ static int qeth_qdio_establish(struct qeth_card *card)
4997 qeth_qdio_establish_cq(card, in_sbal_ptrs, queue_start_poll); 4999 qeth_qdio_establish_cq(card, in_sbal_ptrs, queue_start_poll);
4998 5000
4999 out_sbal_ptrs = 5001 out_sbal_ptrs =
5000 kzalloc(card->qdio.no_out_queues * QDIO_MAX_BUFFERS_PER_Q * 5002 kcalloc(card->qdio.no_out_queues * QDIO_MAX_BUFFERS_PER_Q,
5001 sizeof(void *), GFP_KERNEL); 5003 sizeof(void *),
5004 GFP_KERNEL);
5002 if (!out_sbal_ptrs) { 5005 if (!out_sbal_ptrs) {
5003 rc = -ENOMEM; 5006 rc = -ENOMEM;
5004 goto out_free_queue_start_poll; 5007 goto out_free_queue_start_poll;
diff --git a/drivers/scsi/BusLogic.c b/drivers/scsi/BusLogic.c
index 35380a58d3f0..0d4ffe0ae306 100644
--- a/drivers/scsi/BusLogic.c
+++ b/drivers/scsi/BusLogic.c
@@ -2366,7 +2366,7 @@ static int __init blogic_init(void)
2366 if (blogic_probe_options.noprobe) 2366 if (blogic_probe_options.noprobe)
2367 return -ENODEV; 2367 return -ENODEV;
2368 blogic_probeinfo_list = 2368 blogic_probeinfo_list =
2369 kzalloc(BLOGIC_MAX_ADAPTERS * sizeof(struct blogic_probeinfo), 2369 kcalloc(BLOGIC_MAX_ADAPTERS, sizeof(struct blogic_probeinfo),
2370 GFP_KERNEL); 2370 GFP_KERNEL);
2371 if (blogic_probeinfo_list == NULL) { 2371 if (blogic_probeinfo_list == NULL) {
2372 blogic_err("BusLogic: Unable to allocate Probe Info List\n", 2372 blogic_err("BusLogic: Unable to allocate Probe Info List\n",
diff --git a/drivers/scsi/aacraid/aachba.c b/drivers/scsi/aacraid/aachba.c
index e7961cbd2c55..a9831bd37a73 100644
--- a/drivers/scsi/aacraid/aachba.c
+++ b/drivers/scsi/aacraid/aachba.c
@@ -4132,7 +4132,7 @@ static int aac_convert_sgraw2(struct aac_raw_io2 *rio2, int pages, int nseg, int
4132 if (aac_convert_sgl == 0) 4132 if (aac_convert_sgl == 0)
4133 return 0; 4133 return 0;
4134 4134
4135 sge = kmalloc(nseg_new * sizeof(struct sge_ieee1212), GFP_ATOMIC); 4135 sge = kmalloc_array(nseg_new, sizeof(struct sge_ieee1212), GFP_ATOMIC);
4136 if (sge == NULL) 4136 if (sge == NULL)
4137 return -ENOMEM; 4137 return -ENOMEM;
4138 4138
diff --git a/drivers/scsi/aacraid/linit.c b/drivers/scsi/aacraid/linit.c
index f24fb942065d..04443577d48b 100644
--- a/drivers/scsi/aacraid/linit.c
+++ b/drivers/scsi/aacraid/linit.c
@@ -1681,7 +1681,9 @@ static int aac_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
1681 if (aac_reset_devices || reset_devices) 1681 if (aac_reset_devices || reset_devices)
1682 aac->init_reset = true; 1682 aac->init_reset = true;
1683 1683
1684 aac->fibs = kzalloc(sizeof(struct fib) * (shost->can_queue + AAC_NUM_MGT_FIB), GFP_KERNEL); 1684 aac->fibs = kcalloc(shost->can_queue + AAC_NUM_MGT_FIB,
1685 sizeof(struct fib),
1686 GFP_KERNEL);
1685 if (!aac->fibs) 1687 if (!aac->fibs)
1686 goto out_free_host; 1688 goto out_free_host;
1687 spin_lock_init(&aac->fib_lock); 1689 spin_lock_init(&aac->fib_lock);
diff --git a/drivers/scsi/aha1542.c b/drivers/scsi/aha1542.c
index 124217927c4a..41add33e3f1f 100644
--- a/drivers/scsi/aha1542.c
+++ b/drivers/scsi/aha1542.c
@@ -400,7 +400,8 @@ static int aha1542_queuecommand(struct Scsi_Host *sh, struct scsi_cmnd *cmd)
400#endif 400#endif
401 if (bufflen) { /* allocate memory before taking host_lock */ 401 if (bufflen) { /* allocate memory before taking host_lock */
402 sg_count = scsi_sg_count(cmd); 402 sg_count = scsi_sg_count(cmd);
403 cptr = kmalloc(sizeof(*cptr) * sg_count, GFP_KERNEL | GFP_DMA); 403 cptr = kmalloc_array(sg_count, sizeof(*cptr),
404 GFP_KERNEL | GFP_DMA);
404 if (!cptr) 405 if (!cptr)
405 return SCSI_MLQUEUE_HOST_BUSY; 406 return SCSI_MLQUEUE_HOST_BUSY;
406 } else { 407 } else {
diff --git a/drivers/scsi/aic7xxx/aic79xx_core.c b/drivers/scsi/aic7xxx/aic79xx_core.c
index 034f4eebb160..67d292dcc607 100644
--- a/drivers/scsi/aic7xxx/aic79xx_core.c
+++ b/drivers/scsi/aic7xxx/aic79xx_core.c
@@ -7063,7 +7063,8 @@ ahd_init(struct ahd_softc *ahd)
7063 AHD_ASSERT_MODES(ahd, AHD_MODE_SCSI_MSK, AHD_MODE_SCSI_MSK); 7063 AHD_ASSERT_MODES(ahd, AHD_MODE_SCSI_MSK, AHD_MODE_SCSI_MSK);
7064 7064
7065 ahd->stack_size = ahd_probe_stack_size(ahd); 7065 ahd->stack_size = ahd_probe_stack_size(ahd);
7066 ahd->saved_stack = kmalloc(ahd->stack_size * sizeof(uint16_t), GFP_ATOMIC); 7066 ahd->saved_stack = kmalloc_array(ahd->stack_size, sizeof(uint16_t),
7067 GFP_ATOMIC);
7067 if (ahd->saved_stack == NULL) 7068 if (ahd->saved_stack == NULL)
7068 return (ENOMEM); 7069 return (ENOMEM);
7069 7070
diff --git a/drivers/scsi/aic7xxx/aic7xxx_core.c b/drivers/scsi/aic7xxx/aic7xxx_core.c
index e97eceacf522..915a34f141e4 100644
--- a/drivers/scsi/aic7xxx/aic7xxx_core.c
+++ b/drivers/scsi/aic7xxx/aic7xxx_core.c
@@ -4779,8 +4779,8 @@ ahc_init_scbdata(struct ahc_softc *ahc)
4779 SLIST_INIT(&scb_data->sg_maps); 4779 SLIST_INIT(&scb_data->sg_maps);
4780 4780
4781 /* Allocate SCB resources */ 4781 /* Allocate SCB resources */
4782 scb_data->scbarray = kzalloc(sizeof(struct scb) * AHC_SCB_MAX_ALLOC, 4782 scb_data->scbarray = kcalloc(AHC_SCB_MAX_ALLOC, sizeof(struct scb),
4783 GFP_ATOMIC); 4783 GFP_ATOMIC);
4784 if (scb_data->scbarray == NULL) 4784 if (scb_data->scbarray == NULL)
4785 return (ENOMEM); 4785 return (ENOMEM);
4786 4786
diff --git a/drivers/scsi/aic94xx/aic94xx_hwi.c b/drivers/scsi/aic94xx/aic94xx_hwi.c
index 2dbc8330d7d3..3b8ad55e59de 100644
--- a/drivers/scsi/aic94xx/aic94xx_hwi.c
+++ b/drivers/scsi/aic94xx/aic94xx_hwi.c
@@ -220,8 +220,9 @@ static int asd_init_scbs(struct asd_ha_struct *asd_ha)
220 220
221 /* allocate the index array and bitmap */ 221 /* allocate the index array and bitmap */
222 asd_ha->seq.tc_index_bitmap_bits = asd_ha->hw_prof.max_scbs; 222 asd_ha->seq.tc_index_bitmap_bits = asd_ha->hw_prof.max_scbs;
223 asd_ha->seq.tc_index_array = kzalloc(asd_ha->seq.tc_index_bitmap_bits* 223 asd_ha->seq.tc_index_array = kcalloc(asd_ha->seq.tc_index_bitmap_bits,
224 sizeof(void *), GFP_KERNEL); 224 sizeof(void *),
225 GFP_KERNEL);
225 if (!asd_ha->seq.tc_index_array) 226 if (!asd_ha->seq.tc_index_array)
226 return -ENOMEM; 227 return -ENOMEM;
227 228
@@ -291,7 +292,8 @@ static int asd_alloc_edbs(struct asd_ha_struct *asd_ha, gfp_t gfp_flags)
291 struct asd_seq_data *seq = &asd_ha->seq; 292 struct asd_seq_data *seq = &asd_ha->seq;
292 int i; 293 int i;
293 294
294 seq->edb_arr = kmalloc(seq->num_edbs*sizeof(*seq->edb_arr), gfp_flags); 295 seq->edb_arr = kmalloc_array(seq->num_edbs, sizeof(*seq->edb_arr),
296 gfp_flags);
295 if (!seq->edb_arr) 297 if (!seq->edb_arr)
296 return -ENOMEM; 298 return -ENOMEM;
297 299
@@ -323,8 +325,8 @@ static int asd_alloc_escbs(struct asd_ha_struct *asd_ha,
323 struct asd_ascb *escb; 325 struct asd_ascb *escb;
324 int i, escbs; 326 int i, escbs;
325 327
326 seq->escb_arr = kmalloc(seq->num_escbs*sizeof(*seq->escb_arr), 328 seq->escb_arr = kmalloc_array(seq->num_escbs, sizeof(*seq->escb_arr),
327 gfp_flags); 329 gfp_flags);
328 if (!seq->escb_arr) 330 if (!seq->escb_arr)
329 return -ENOMEM; 331 return -ENOMEM;
330 332
diff --git a/drivers/scsi/aic94xx/aic94xx_init.c b/drivers/scsi/aic94xx/aic94xx_init.c
index 6c838865ac5a..80e5b283fd81 100644
--- a/drivers/scsi/aic94xx/aic94xx_init.c
+++ b/drivers/scsi/aic94xx/aic94xx_init.c
@@ -350,7 +350,7 @@ static ssize_t asd_store_update_bios(struct device *dev,
350 int flash_command = FLASH_CMD_NONE; 350 int flash_command = FLASH_CMD_NONE;
351 int err = 0; 351 int err = 0;
352 352
353 cmd_ptr = kzalloc(count*2, GFP_KERNEL); 353 cmd_ptr = kcalloc(count, 2, GFP_KERNEL);
354 354
355 if (!cmd_ptr) { 355 if (!cmd_ptr) {
356 err = FAIL_OUT_MEMORY; 356 err = FAIL_OUT_MEMORY;
diff --git a/drivers/scsi/arm/queue.c b/drivers/scsi/arm/queue.c
index 3441ce3ebabf..996dfe903928 100644
--- a/drivers/scsi/arm/queue.c
+++ b/drivers/scsi/arm/queue.c
@@ -70,7 +70,7 @@ int queue_initialise (Queue_t *queue)
70 * need to keep free lists or allocate this 70 * need to keep free lists or allocate this
71 * memory. 71 * memory.
72 */ 72 */
73 queue->alloc = q = kmalloc(sizeof(QE_t) * nqueues, GFP_KERNEL); 73 queue->alloc = q = kmalloc_array(nqueues, sizeof(QE_t), GFP_KERNEL);
74 if (q) { 74 if (q) {
75 for (; nqueues; q++, nqueues--) { 75 for (; nqueues; q++, nqueues--) {
76 SET_MAGIC(q, QUEUE_MAGIC_FREE); 76 SET_MAGIC(q, QUEUE_MAGIC_FREE);
diff --git a/drivers/scsi/be2iscsi/be_main.c b/drivers/scsi/be2iscsi/be_main.c
index b3cfdd5f4d1c..818d185d63f0 100644
--- a/drivers/scsi/be2iscsi/be_main.c
+++ b/drivers/scsi/be2iscsi/be_main.c
@@ -2467,8 +2467,8 @@ static int beiscsi_alloc_mem(struct beiscsi_hba *phba)
2467 2467
2468 /* Allocate memory for wrb_context */ 2468 /* Allocate memory for wrb_context */
2469 phwi_ctrlr = phba->phwi_ctrlr; 2469 phwi_ctrlr = phba->phwi_ctrlr;
2470 phwi_ctrlr->wrb_context = kzalloc(sizeof(struct hwi_wrb_context) * 2470 phwi_ctrlr->wrb_context = kcalloc(phba->params.cxns_per_ctrl,
2471 phba->params.cxns_per_ctrl, 2471 sizeof(struct hwi_wrb_context),
2472 GFP_KERNEL); 2472 GFP_KERNEL);
2473 if (!phwi_ctrlr->wrb_context) { 2473 if (!phwi_ctrlr->wrb_context) {
2474 kfree(phba->phwi_ctrlr); 2474 kfree(phba->phwi_ctrlr);
@@ -2483,8 +2483,9 @@ static int beiscsi_alloc_mem(struct beiscsi_hba *phba)
2483 return -ENOMEM; 2483 return -ENOMEM;
2484 } 2484 }
2485 2485
2486 mem_arr_orig = kmalloc(sizeof(*mem_arr_orig) * BEISCSI_MAX_FRAGS_INIT, 2486 mem_arr_orig = kmalloc_array(BEISCSI_MAX_FRAGS_INIT,
2487 GFP_KERNEL); 2487 sizeof(*mem_arr_orig),
2488 GFP_KERNEL);
2488 if (!mem_arr_orig) { 2489 if (!mem_arr_orig) {
2489 kfree(phba->init_mem); 2490 kfree(phba->init_mem);
2490 kfree(phwi_ctrlr->wrb_context); 2491 kfree(phwi_ctrlr->wrb_context);
@@ -2533,8 +2534,8 @@ static int beiscsi_alloc_mem(struct beiscsi_hba *phba)
2533 } while (alloc_size); 2534 } while (alloc_size);
2534 mem_descr->num_elements = j; 2535 mem_descr->num_elements = j;
2535 mem_descr->size_in_bytes = phba->mem_req[i]; 2536 mem_descr->size_in_bytes = phba->mem_req[i];
2536 mem_descr->mem_array = kmalloc(sizeof(*mem_arr) * j, 2537 mem_descr->mem_array = kmalloc_array(j, sizeof(*mem_arr),
2537 GFP_KERNEL); 2538 GFP_KERNEL);
2538 if (!mem_descr->mem_array) 2539 if (!mem_descr->mem_array)
2539 goto free_mem; 2540 goto free_mem;
2540 2541
@@ -2620,8 +2621,8 @@ static int beiscsi_init_wrb_handle(struct beiscsi_hba *phba)
2620 2621
2621 /* Allocate memory for WRBQ */ 2622 /* Allocate memory for WRBQ */
2622 phwi_ctxt = phwi_ctrlr->phwi_ctxt; 2623 phwi_ctxt = phwi_ctrlr->phwi_ctxt;
2623 phwi_ctxt->be_wrbq = kzalloc(sizeof(struct be_queue_info) * 2624 phwi_ctxt->be_wrbq = kcalloc(phba->params.cxns_per_ctrl,
2624 phba->params.cxns_per_ctrl, 2625 sizeof(struct be_queue_info),
2625 GFP_KERNEL); 2626 GFP_KERNEL);
2626 if (!phwi_ctxt->be_wrbq) { 2627 if (!phwi_ctxt->be_wrbq) {
2627 beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, 2628 beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT,
@@ -2632,16 +2633,18 @@ static int beiscsi_init_wrb_handle(struct beiscsi_hba *phba)
2632 for (index = 0; index < phba->params.cxns_per_ctrl; index++) { 2633 for (index = 0; index < phba->params.cxns_per_ctrl; index++) {
2633 pwrb_context = &phwi_ctrlr->wrb_context[index]; 2634 pwrb_context = &phwi_ctrlr->wrb_context[index];
2634 pwrb_context->pwrb_handle_base = 2635 pwrb_context->pwrb_handle_base =
2635 kzalloc(sizeof(struct wrb_handle *) * 2636 kcalloc(phba->params.wrbs_per_cxn,
2636 phba->params.wrbs_per_cxn, GFP_KERNEL); 2637 sizeof(struct wrb_handle *),
2638 GFP_KERNEL);
2637 if (!pwrb_context->pwrb_handle_base) { 2639 if (!pwrb_context->pwrb_handle_base) {
2638 beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, 2640 beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT,
2639 "BM_%d : Mem Alloc Failed. Failing to load\n"); 2641 "BM_%d : Mem Alloc Failed. Failing to load\n");
2640 goto init_wrb_hndl_failed; 2642 goto init_wrb_hndl_failed;
2641 } 2643 }
2642 pwrb_context->pwrb_handle_basestd = 2644 pwrb_context->pwrb_handle_basestd =
2643 kzalloc(sizeof(struct wrb_handle *) * 2645 kcalloc(phba->params.wrbs_per_cxn,
2644 phba->params.wrbs_per_cxn, GFP_KERNEL); 2646 sizeof(struct wrb_handle *),
2647 GFP_KERNEL);
2645 if (!pwrb_context->pwrb_handle_basestd) { 2648 if (!pwrb_context->pwrb_handle_basestd) {
2646 beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, 2649 beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT,
2647 "BM_%d : Mem Alloc Failed. Failing to load\n"); 2650 "BM_%d : Mem Alloc Failed. Failing to load\n");
@@ -3353,8 +3356,9 @@ beiscsi_create_wrb_rings(struct beiscsi_hba *phba,
3353 idx = 0; 3356 idx = 0;
3354 mem_descr = phba->init_mem; 3357 mem_descr = phba->init_mem;
3355 mem_descr += HWI_MEM_WRB; 3358 mem_descr += HWI_MEM_WRB;
3356 pwrb_arr = kmalloc(sizeof(*pwrb_arr) * phba->params.cxns_per_ctrl, 3359 pwrb_arr = kmalloc_array(phba->params.cxns_per_ctrl,
3357 GFP_KERNEL); 3360 sizeof(*pwrb_arr),
3361 GFP_KERNEL);
3358 if (!pwrb_arr) { 3362 if (!pwrb_arr) {
3359 beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, 3363 beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT,
3360 "BM_%d : Memory alloc failed in create wrb ring.\n"); 3364 "BM_%d : Memory alloc failed in create wrb ring.\n");
@@ -3894,18 +3898,18 @@ static int beiscsi_init_sgl_handle(struct beiscsi_hba *phba)
3894 mem_descr_sglh = phba->init_mem; 3898 mem_descr_sglh = phba->init_mem;
3895 mem_descr_sglh += HWI_MEM_SGLH; 3899 mem_descr_sglh += HWI_MEM_SGLH;
3896 if (1 == mem_descr_sglh->num_elements) { 3900 if (1 == mem_descr_sglh->num_elements) {
3897 phba->io_sgl_hndl_base = kzalloc(sizeof(struct sgl_handle *) * 3901 phba->io_sgl_hndl_base = kcalloc(phba->params.ios_per_ctrl,
3898 phba->params.ios_per_ctrl, 3902 sizeof(struct sgl_handle *),
3899 GFP_KERNEL); 3903 GFP_KERNEL);
3900 if (!phba->io_sgl_hndl_base) { 3904 if (!phba->io_sgl_hndl_base) {
3901 beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, 3905 beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT,
3902 "BM_%d : Mem Alloc Failed. Failing to load\n"); 3906 "BM_%d : Mem Alloc Failed. Failing to load\n");
3903 return -ENOMEM; 3907 return -ENOMEM;
3904 } 3908 }
3905 phba->eh_sgl_hndl_base = kzalloc(sizeof(struct sgl_handle *) * 3909 phba->eh_sgl_hndl_base =
3906 (phba->params.icds_per_ctrl - 3910 kcalloc(phba->params.icds_per_ctrl -
3907 phba->params.ios_per_ctrl), 3911 phba->params.ios_per_ctrl,
3908 GFP_KERNEL); 3912 sizeof(struct sgl_handle *), GFP_KERNEL);
3909 if (!phba->eh_sgl_hndl_base) { 3913 if (!phba->eh_sgl_hndl_base) {
3910 kfree(phba->io_sgl_hndl_base); 3914 kfree(phba->io_sgl_hndl_base);
3911 beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, 3915 beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT,
@@ -4032,8 +4036,9 @@ static int hba_setup_cid_tbls(struct beiscsi_hba *phba)
4032 phba->cid_array_info[ulp_num] = ptr_cid_info; 4036 phba->cid_array_info[ulp_num] = ptr_cid_info;
4033 } 4037 }
4034 } 4038 }
4035 phba->ep_array = kzalloc(sizeof(struct iscsi_endpoint *) * 4039 phba->ep_array = kcalloc(phba->params.cxns_per_ctrl,
4036 phba->params.cxns_per_ctrl, GFP_KERNEL); 4040 sizeof(struct iscsi_endpoint *),
4041 GFP_KERNEL);
4037 if (!phba->ep_array) { 4042 if (!phba->ep_array) {
4038 beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, 4043 beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT,
4039 "BM_%d : Failed to allocate memory in " 4044 "BM_%d : Failed to allocate memory in "
@@ -4043,8 +4048,9 @@ static int hba_setup_cid_tbls(struct beiscsi_hba *phba)
4043 goto free_memory; 4048 goto free_memory;
4044 } 4049 }
4045 4050
4046 phba->conn_table = kzalloc(sizeof(struct beiscsi_conn *) * 4051 phba->conn_table = kcalloc(phba->params.cxns_per_ctrl,
4047 phba->params.cxns_per_ctrl, GFP_KERNEL); 4052 sizeof(struct beiscsi_conn *),
4053 GFP_KERNEL);
4048 if (!phba->conn_table) { 4054 if (!phba->conn_table) {
4049 beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, 4055 beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT,
4050 "BM_%d : Failed to allocate memory in" 4056 "BM_%d : Failed to allocate memory in"
diff --git a/drivers/scsi/bfa/bfad_attr.c b/drivers/scsi/bfa/bfad_attr.c
index d4d276c757ea..26b0fa4e90b5 100644
--- a/drivers/scsi/bfa/bfad_attr.c
+++ b/drivers/scsi/bfa/bfad_attr.c
@@ -927,7 +927,7 @@ bfad_im_num_of_discovered_ports_show(struct device *dev,
927 struct bfa_rport_qualifier_s *rports = NULL; 927 struct bfa_rport_qualifier_s *rports = NULL;
928 unsigned long flags; 928 unsigned long flags;
929 929
930 rports = kzalloc(sizeof(struct bfa_rport_qualifier_s) * nrports, 930 rports = kcalloc(nrports, sizeof(struct bfa_rport_qualifier_s),
931 GFP_ATOMIC); 931 GFP_ATOMIC);
932 if (rports == NULL) 932 if (rports == NULL)
933 return snprintf(buf, PAGE_SIZE, "Failed\n"); 933 return snprintf(buf, PAGE_SIZE, "Failed\n");
diff --git a/drivers/scsi/bfa/bfad_bsg.c b/drivers/scsi/bfa/bfad_bsg.c
index 7c884f881180..5d163ca1b366 100644
--- a/drivers/scsi/bfa/bfad_bsg.c
+++ b/drivers/scsi/bfa/bfad_bsg.c
@@ -3252,8 +3252,9 @@ bfad_fcxp_map_sg(struct bfad_s *bfad, void *payload_kbuf,
3252 struct bfa_sge_s *sg_table; 3252 struct bfa_sge_s *sg_table;
3253 int sge_num = 1; 3253 int sge_num = 1;
3254 3254
3255 buf_base = kzalloc((sizeof(struct bfad_buf_info) + 3255 buf_base = kcalloc(sizeof(struct bfad_buf_info) +
3256 sizeof(struct bfa_sge_s)) * sge_num, GFP_KERNEL); 3256 sizeof(struct bfa_sge_s),
3257 sge_num, GFP_KERNEL);
3257 if (!buf_base) 3258 if (!buf_base)
3258 return NULL; 3259 return NULL;
3259 3260
diff --git a/drivers/scsi/bnx2fc/bnx2fc_fcoe.c b/drivers/scsi/bnx2fc/bnx2fc_fcoe.c
index 65de1d0578a1..f00045813378 100644
--- a/drivers/scsi/bnx2fc/bnx2fc_fcoe.c
+++ b/drivers/scsi/bnx2fc/bnx2fc_fcoe.c
@@ -1397,7 +1397,7 @@ static struct bnx2fc_hba *bnx2fc_hba_create(struct cnic_dev *cnic)
1397 hba->next_conn_id = 0; 1397 hba->next_conn_id = 0;
1398 1398
1399 hba->tgt_ofld_list = 1399 hba->tgt_ofld_list =
1400 kzalloc(sizeof(struct bnx2fc_rport *) * BNX2FC_NUM_MAX_SESS, 1400 kcalloc(BNX2FC_NUM_MAX_SESS, sizeof(struct bnx2fc_rport *),
1401 GFP_KERNEL); 1401 GFP_KERNEL);
1402 if (!hba->tgt_ofld_list) { 1402 if (!hba->tgt_ofld_list) {
1403 printk(KERN_ERR PFX "Unable to allocate tgt offload list\n"); 1403 printk(KERN_ERR PFX "Unable to allocate tgt offload list\n");
diff --git a/drivers/scsi/bnx2fc/bnx2fc_io.c b/drivers/scsi/bnx2fc/bnx2fc_io.c
index 5a645b8b9af1..350257c13a5b 100644
--- a/drivers/scsi/bnx2fc/bnx2fc_io.c
+++ b/drivers/scsi/bnx2fc/bnx2fc_io.c
@@ -240,15 +240,15 @@ struct bnx2fc_cmd_mgr *bnx2fc_cmd_mgr_alloc(struct bnx2fc_hba *hba)
240 return NULL; 240 return NULL;
241 } 241 }
242 242
243 cmgr->free_list = kzalloc(sizeof(*cmgr->free_list) * 243 cmgr->free_list = kcalloc(arr_sz, sizeof(*cmgr->free_list),
244 arr_sz, GFP_KERNEL); 244 GFP_KERNEL);
245 if (!cmgr->free_list) { 245 if (!cmgr->free_list) {
246 printk(KERN_ERR PFX "failed to alloc free_list\n"); 246 printk(KERN_ERR PFX "failed to alloc free_list\n");
247 goto mem_err; 247 goto mem_err;
248 } 248 }
249 249
250 cmgr->free_list_lock = kzalloc(sizeof(*cmgr->free_list_lock) * 250 cmgr->free_list_lock = kcalloc(arr_sz, sizeof(*cmgr->free_list_lock),
251 arr_sz, GFP_KERNEL); 251 GFP_KERNEL);
252 if (!cmgr->free_list_lock) { 252 if (!cmgr->free_list_lock) {
253 printk(KERN_ERR PFX "failed to alloc free_list_lock\n"); 253 printk(KERN_ERR PFX "failed to alloc free_list_lock\n");
254 kfree(cmgr->free_list); 254 kfree(cmgr->free_list);
diff --git a/drivers/scsi/csiostor/csio_wr.c b/drivers/scsi/csiostor/csio_wr.c
index c0a17789752f..faa357b62c61 100644
--- a/drivers/scsi/csiostor/csio_wr.c
+++ b/drivers/scsi/csiostor/csio_wr.c
@@ -276,7 +276,7 @@ csio_wr_alloc_q(struct csio_hw *hw, uint32_t qsize, uint32_t wrsize,
276 q->un.iq.flq_idx = flq_idx; 276 q->un.iq.flq_idx = flq_idx;
277 277
278 flq = wrm->q_arr[q->un.iq.flq_idx]; 278 flq = wrm->q_arr[q->un.iq.flq_idx];
279 flq->un.fl.bufs = kzalloc(flq->credits * 279 flq->un.fl.bufs = kcalloc(flq->credits,
280 sizeof(struct csio_dma_buf), 280 sizeof(struct csio_dma_buf),
281 GFP_KERNEL); 281 GFP_KERNEL);
282 if (!flq->un.fl.bufs) { 282 if (!flq->un.fl.bufs) {
@@ -1579,7 +1579,7 @@ csio_wrm_init(struct csio_wrm *wrm, struct csio_hw *hw)
1579 return -EINVAL; 1579 return -EINVAL;
1580 } 1580 }
1581 1581
1582 wrm->q_arr = kzalloc(sizeof(struct csio_q *) * wrm->num_q, GFP_KERNEL); 1582 wrm->q_arr = kcalloc(wrm->num_q, sizeof(struct csio_q *), GFP_KERNEL);
1583 if (!wrm->q_arr) 1583 if (!wrm->q_arr)
1584 goto err; 1584 goto err;
1585 1585
diff --git a/drivers/scsi/esas2r/esas2r_init.c b/drivers/scsi/esas2r/esas2r_init.c
index 9db645dde35e..bbe77db8938d 100644
--- a/drivers/scsi/esas2r/esas2r_init.c
+++ b/drivers/scsi/esas2r/esas2r_init.c
@@ -833,7 +833,7 @@ bool esas2r_init_adapter_struct(struct esas2r_adapter *a,
833 833
834 /* allocate requests for asynchronous events */ 834 /* allocate requests for asynchronous events */
835 a->first_ae_req = 835 a->first_ae_req =
836 kzalloc(num_ae_requests * sizeof(struct esas2r_request), 836 kcalloc(num_ae_requests, sizeof(struct esas2r_request),
837 GFP_KERNEL); 837 GFP_KERNEL);
838 838
839 if (a->first_ae_req == NULL) { 839 if (a->first_ae_req == NULL) {
@@ -843,8 +843,8 @@ bool esas2r_init_adapter_struct(struct esas2r_adapter *a,
843 } 843 }
844 844
845 /* allocate the S/G list memory descriptors */ 845 /* allocate the S/G list memory descriptors */
846 a->sg_list_mds = kzalloc( 846 a->sg_list_mds = kcalloc(num_sg_lists, sizeof(struct esas2r_mem_desc),
847 num_sg_lists * sizeof(struct esas2r_mem_desc), GFP_KERNEL); 847 GFP_KERNEL);
848 848
849 if (a->sg_list_mds == NULL) { 849 if (a->sg_list_mds == NULL) {
850 esas2r_log(ESAS2R_LOG_CRIT, 850 esas2r_log(ESAS2R_LOG_CRIT,
@@ -854,8 +854,9 @@ bool esas2r_init_adapter_struct(struct esas2r_adapter *a,
854 854
855 /* allocate the request table */ 855 /* allocate the request table */
856 a->req_table = 856 a->req_table =
857 kzalloc((num_requests + num_ae_requests + 857 kcalloc(num_requests + num_ae_requests + 1,
858 1) * sizeof(struct esas2r_request *), GFP_KERNEL); 858 sizeof(struct esas2r_request *),
859 GFP_KERNEL);
859 860
860 if (a->req_table == NULL) { 861 if (a->req_table == NULL) {
861 esas2r_log(ESAS2R_LOG_CRIT, 862 esas2r_log(ESAS2R_LOG_CRIT,
diff --git a/drivers/scsi/fcoe/fcoe_ctlr.c b/drivers/scsi/fcoe/fcoe_ctlr.c
index 097f37de6ce9..ea23c8dffc25 100644
--- a/drivers/scsi/fcoe/fcoe_ctlr.c
+++ b/drivers/scsi/fcoe/fcoe_ctlr.c
@@ -1390,8 +1390,8 @@ static void fcoe_ctlr_recv_clr_vlink(struct fcoe_ctlr *fip,
1390 */ 1390 */
1391 num_vlink_desc = rlen / sizeof(*vp); 1391 num_vlink_desc = rlen / sizeof(*vp);
1392 if (num_vlink_desc) 1392 if (num_vlink_desc)
1393 vlink_desc_arr = kmalloc(sizeof(vp) * num_vlink_desc, 1393 vlink_desc_arr = kmalloc_array(num_vlink_desc, sizeof(vp),
1394 GFP_ATOMIC); 1394 GFP_ATOMIC);
1395 if (!vlink_desc_arr) 1395 if (!vlink_desc_arr)
1396 return; 1396 return;
1397 num_vlink_desc = 0; 1397 num_vlink_desc = 0;
diff --git a/drivers/scsi/fnic/fnic_debugfs.c b/drivers/scsi/fnic/fnic_debugfs.c
index 6d3e1cb4fea6..139fffa3658a 100644
--- a/drivers/scsi/fnic/fnic_debugfs.c
+++ b/drivers/scsi/fnic/fnic_debugfs.c
@@ -233,8 +233,8 @@ static int fnic_trace_debugfs_open(struct inode *inode,
233 return -ENOMEM; 233 return -ENOMEM;
234 234
235 if (*rdata_ptr == fc_trc_flag->fnic_trace) { 235 if (*rdata_ptr == fc_trc_flag->fnic_trace) {
236 fnic_dbg_prt->buffer = vmalloc(3 * 236 fnic_dbg_prt->buffer = vmalloc(array3_size(3, trace_max_pages,
237 (trace_max_pages * PAGE_SIZE)); 237 PAGE_SIZE));
238 if (!fnic_dbg_prt->buffer) { 238 if (!fnic_dbg_prt->buffer) {
239 kfree(fnic_dbg_prt); 239 kfree(fnic_dbg_prt);
240 return -ENOMEM; 240 return -ENOMEM;
@@ -244,7 +244,8 @@ static int fnic_trace_debugfs_open(struct inode *inode,
244 fnic_dbg_prt->buffer_len = fnic_get_trace_data(fnic_dbg_prt); 244 fnic_dbg_prt->buffer_len = fnic_get_trace_data(fnic_dbg_prt);
245 } else { 245 } else {
246 fnic_dbg_prt->buffer = 246 fnic_dbg_prt->buffer =
247 vmalloc(3 * (fnic_fc_trace_max_pages * PAGE_SIZE)); 247 vmalloc(array3_size(3, fnic_fc_trace_max_pages,
248 PAGE_SIZE));
248 if (!fnic_dbg_prt->buffer) { 249 if (!fnic_dbg_prt->buffer) {
249 kfree(fnic_dbg_prt); 250 kfree(fnic_dbg_prt);
250 return -ENOMEM; 251 return -ENOMEM;
diff --git a/drivers/scsi/fnic/fnic_trace.c b/drivers/scsi/fnic/fnic_trace.c
index 98597b59c12a..8271785bdb93 100644
--- a/drivers/scsi/fnic/fnic_trace.c
+++ b/drivers/scsi/fnic/fnic_trace.c
@@ -477,8 +477,9 @@ int fnic_trace_buf_init(void)
477 } 477 }
478 memset((void *)fnic_trace_buf_p, 0, (trace_max_pages * PAGE_SIZE)); 478 memset((void *)fnic_trace_buf_p, 0, (trace_max_pages * PAGE_SIZE));
479 479
480 fnic_trace_entries.page_offset = vmalloc(fnic_max_trace_entries * 480 fnic_trace_entries.page_offset =
481 sizeof(unsigned long)); 481 vmalloc(array_size(fnic_max_trace_entries,
482 sizeof(unsigned long)));
482 if (!fnic_trace_entries.page_offset) { 483 if (!fnic_trace_entries.page_offset) {
483 printk(KERN_ERR PFX "Failed to allocate memory for" 484 printk(KERN_ERR PFX "Failed to allocate memory for"
484 " page_offset\n"); 485 " page_offset\n");
@@ -555,8 +556,9 @@ int fnic_fc_trace_init(void)
555 556
556 fc_trace_max_entries = (fnic_fc_trace_max_pages * PAGE_SIZE)/ 557 fc_trace_max_entries = (fnic_fc_trace_max_pages * PAGE_SIZE)/
557 FC_TRC_SIZE_BYTES; 558 FC_TRC_SIZE_BYTES;
558 fnic_fc_ctlr_trace_buf_p = (unsigned long)vmalloc( 559 fnic_fc_ctlr_trace_buf_p =
559 fnic_fc_trace_max_pages * PAGE_SIZE); 560 (unsigned long)vmalloc(array_size(PAGE_SIZE,
561 fnic_fc_trace_max_pages));
560 if (!fnic_fc_ctlr_trace_buf_p) { 562 if (!fnic_fc_ctlr_trace_buf_p) {
561 pr_err("fnic: Failed to allocate memory for " 563 pr_err("fnic: Failed to allocate memory for "
562 "FC Control Trace Buf\n"); 564 "FC Control Trace Buf\n");
@@ -568,8 +570,9 @@ int fnic_fc_trace_init(void)
568 fnic_fc_trace_max_pages * PAGE_SIZE); 570 fnic_fc_trace_max_pages * PAGE_SIZE);
569 571
570 /* Allocate memory for page offset */ 572 /* Allocate memory for page offset */
571 fc_trace_entries.page_offset = vmalloc(fc_trace_max_entries * 573 fc_trace_entries.page_offset =
572 sizeof(unsigned long)); 574 vmalloc(array_size(fc_trace_max_entries,
575 sizeof(unsigned long)));
573 if (!fc_trace_entries.page_offset) { 576 if (!fc_trace_entries.page_offset) {
574 pr_err("fnic:Failed to allocate memory for page_offset\n"); 577 pr_err("fnic:Failed to allocate memory for page_offset\n");
575 if (fnic_fc_ctlr_trace_buf_p) { 578 if (fnic_fc_ctlr_trace_buf_p) {
diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c
index 3a9eca163db8..af0e628ff396 100644
--- a/drivers/scsi/hpsa.c
+++ b/drivers/scsi/hpsa.c
@@ -1923,8 +1923,8 @@ static void adjust_hpsa_scsi_table(struct ctlr_info *h,
1923 } 1923 }
1924 spin_unlock_irqrestore(&h->reset_lock, flags); 1924 spin_unlock_irqrestore(&h->reset_lock, flags);
1925 1925
1926 added = kzalloc(sizeof(*added) * HPSA_MAX_DEVICES, GFP_KERNEL); 1926 added = kcalloc(HPSA_MAX_DEVICES, sizeof(*added), GFP_KERNEL);
1927 removed = kzalloc(sizeof(*removed) * HPSA_MAX_DEVICES, GFP_KERNEL); 1927 removed = kcalloc(HPSA_MAX_DEVICES, sizeof(*removed), GFP_KERNEL);
1928 1928
1929 if (!added || !removed) { 1929 if (!added || !removed) {
1930 dev_warn(&h->pdev->dev, "out of memory in " 1930 dev_warn(&h->pdev->dev, "out of memory in "
@@ -2171,14 +2171,15 @@ static int hpsa_allocate_ioaccel2_sg_chain_blocks(struct ctlr_info *h)
2171 return 0; 2171 return 0;
2172 2172
2173 h->ioaccel2_cmd_sg_list = 2173 h->ioaccel2_cmd_sg_list =
2174 kzalloc(sizeof(*h->ioaccel2_cmd_sg_list) * h->nr_cmds, 2174 kcalloc(h->nr_cmds, sizeof(*h->ioaccel2_cmd_sg_list),
2175 GFP_KERNEL); 2175 GFP_KERNEL);
2176 if (!h->ioaccel2_cmd_sg_list) 2176 if (!h->ioaccel2_cmd_sg_list)
2177 return -ENOMEM; 2177 return -ENOMEM;
2178 for (i = 0; i < h->nr_cmds; i++) { 2178 for (i = 0; i < h->nr_cmds; i++) {
2179 h->ioaccel2_cmd_sg_list[i] = 2179 h->ioaccel2_cmd_sg_list[i] =
2180 kmalloc(sizeof(*h->ioaccel2_cmd_sg_list[i]) * 2180 kmalloc_array(h->maxsgentries,
2181 h->maxsgentries, GFP_KERNEL); 2181 sizeof(*h->ioaccel2_cmd_sg_list[i]),
2182 GFP_KERNEL);
2182 if (!h->ioaccel2_cmd_sg_list[i]) 2183 if (!h->ioaccel2_cmd_sg_list[i])
2183 goto clean; 2184 goto clean;
2184 } 2185 }
@@ -2210,14 +2211,15 @@ static int hpsa_alloc_sg_chain_blocks(struct ctlr_info *h)
2210 if (h->chainsize <= 0) 2211 if (h->chainsize <= 0)
2211 return 0; 2212 return 0;
2212 2213
2213 h->cmd_sg_list = kzalloc(sizeof(*h->cmd_sg_list) * h->nr_cmds, 2214 h->cmd_sg_list = kcalloc(h->nr_cmds, sizeof(*h->cmd_sg_list),
2214 GFP_KERNEL); 2215 GFP_KERNEL);
2215 if (!h->cmd_sg_list) 2216 if (!h->cmd_sg_list)
2216 return -ENOMEM; 2217 return -ENOMEM;
2217 2218
2218 for (i = 0; i < h->nr_cmds; i++) { 2219 for (i = 0; i < h->nr_cmds; i++) {
2219 h->cmd_sg_list[i] = kmalloc(sizeof(*h->cmd_sg_list[i]) * 2220 h->cmd_sg_list[i] = kmalloc_array(h->chainsize,
2220 h->chainsize, GFP_KERNEL); 2221 sizeof(*h->cmd_sg_list[i]),
2222 GFP_KERNEL);
2221 if (!h->cmd_sg_list[i]) 2223 if (!h->cmd_sg_list[i])
2222 goto clean; 2224 goto clean;
2223 2225
@@ -4319,7 +4321,7 @@ static void hpsa_update_scsi_devices(struct ctlr_info *h)
4319 bool physical_device; 4321 bool physical_device;
4320 DECLARE_BITMAP(lunzerobits, MAX_EXT_TARGETS); 4322 DECLARE_BITMAP(lunzerobits, MAX_EXT_TARGETS);
4321 4323
4322 currentsd = kzalloc(sizeof(*currentsd) * HPSA_MAX_DEVICES, GFP_KERNEL); 4324 currentsd = kcalloc(HPSA_MAX_DEVICES, sizeof(*currentsd), GFP_KERNEL);
4323 physdev_list = kzalloc(sizeof(*physdev_list), GFP_KERNEL); 4325 physdev_list = kzalloc(sizeof(*physdev_list), GFP_KERNEL);
4324 logdev_list = kzalloc(sizeof(*logdev_list), GFP_KERNEL); 4326 logdev_list = kzalloc(sizeof(*logdev_list), GFP_KERNEL);
4325 tmpdevice = kzalloc(sizeof(*tmpdevice), GFP_KERNEL); 4327 tmpdevice = kzalloc(sizeof(*tmpdevice), GFP_KERNEL);
@@ -6402,12 +6404,12 @@ static int hpsa_big_passthru_ioctl(struct ctlr_info *h, void __user *argp)
6402 status = -EINVAL; 6404 status = -EINVAL;
6403 goto cleanup1; 6405 goto cleanup1;
6404 } 6406 }
6405 buff = kzalloc(SG_ENTRIES_IN_CMD * sizeof(char *), GFP_KERNEL); 6407 buff = kcalloc(SG_ENTRIES_IN_CMD, sizeof(char *), GFP_KERNEL);
6406 if (!buff) { 6408 if (!buff) {
6407 status = -ENOMEM; 6409 status = -ENOMEM;
6408 goto cleanup1; 6410 goto cleanup1;
6409 } 6411 }
6410 buff_size = kmalloc(SG_ENTRIES_IN_CMD * sizeof(int), GFP_KERNEL); 6412 buff_size = kmalloc_array(SG_ENTRIES_IN_CMD, sizeof(int), GFP_KERNEL);
6411 if (!buff_size) { 6413 if (!buff_size) {
6412 status = -ENOMEM; 6414 status = -ENOMEM;
6413 goto cleanup1; 6415 goto cleanup1;
@@ -7151,7 +7153,7 @@ static int controller_reset_failed(struct CfgTable __iomem *cfgtable)
7151 char *driver_ver, *old_driver_ver; 7153 char *driver_ver, *old_driver_ver;
7152 int rc, size = sizeof(cfgtable->driver_version); 7154 int rc, size = sizeof(cfgtable->driver_version);
7153 7155
7154 old_driver_ver = kmalloc(2 * size, GFP_KERNEL); 7156 old_driver_ver = kmalloc_array(2, size, GFP_KERNEL);
7155 if (!old_driver_ver) 7157 if (!old_driver_ver)
7156 return -ENOMEM; 7158 return -ENOMEM;
7157 driver_ver = old_driver_ver + size; 7159 driver_ver = old_driver_ver + size;
@@ -7931,9 +7933,9 @@ static void hpsa_free_cmd_pool(struct ctlr_info *h)
7931 7933
7932static int hpsa_alloc_cmd_pool(struct ctlr_info *h) 7934static int hpsa_alloc_cmd_pool(struct ctlr_info *h)
7933{ 7935{
7934 h->cmd_pool_bits = kzalloc( 7936 h->cmd_pool_bits = kcalloc(DIV_ROUND_UP(h->nr_cmds, BITS_PER_LONG),
7935 DIV_ROUND_UP(h->nr_cmds, BITS_PER_LONG) * 7937 sizeof(unsigned long),
7936 sizeof(unsigned long), GFP_KERNEL); 7938 GFP_KERNEL);
7937 h->cmd_pool = pci_alloc_consistent(h->pdev, 7939 h->cmd_pool = pci_alloc_consistent(h->pdev,
7938 h->nr_cmds * sizeof(*h->cmd_pool), 7940 h->nr_cmds * sizeof(*h->cmd_pool),
7939 &(h->cmd_pool_dhandle)); 7941 &(h->cmd_pool_dhandle));
@@ -8507,7 +8509,7 @@ static struct ctlr_info *hpda_alloc_ctlr_info(void)
8507 if (!h) 8509 if (!h)
8508 return NULL; 8510 return NULL;
8509 8511
8510 h->reply_map = kzalloc(sizeof(*h->reply_map) * nr_cpu_ids, GFP_KERNEL); 8512 h->reply_map = kcalloc(nr_cpu_ids, sizeof(*h->reply_map), GFP_KERNEL);
8511 if (!h->reply_map) { 8513 if (!h->reply_map) {
8512 kfree(h); 8514 kfree(h);
8513 return NULL; 8515 return NULL;
diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c
index 6615ad8754b8..0a9b8b387bd2 100644
--- a/drivers/scsi/ipr.c
+++ b/drivers/scsi/ipr.c
@@ -4331,9 +4331,11 @@ static int ipr_alloc_dump(struct ipr_ioa_cfg *ioa_cfg)
4331 } 4331 }
4332 4332
4333 if (ioa_cfg->sis64) 4333 if (ioa_cfg->sis64)
4334 ioa_data = vmalloc(IPR_FMT3_MAX_NUM_DUMP_PAGES * sizeof(__be32 *)); 4334 ioa_data = vmalloc(array_size(IPR_FMT3_MAX_NUM_DUMP_PAGES,
4335 sizeof(__be32 *)));
4335 else 4336 else
4336 ioa_data = vmalloc(IPR_FMT2_MAX_NUM_DUMP_PAGES * sizeof(__be32 *)); 4337 ioa_data = vmalloc(array_size(IPR_FMT2_MAX_NUM_DUMP_PAGES,
4338 sizeof(__be32 *)));
4337 4339
4338 if (!ioa_data) { 4340 if (!ioa_data) {
4339 ipr_err("Dump memory allocation failed\n"); 4341 ipr_err("Dump memory allocation failed\n");
@@ -9713,8 +9715,9 @@ static int ipr_alloc_mem(struct ipr_ioa_cfg *ioa_cfg)
9713 int i, rc = -ENOMEM; 9715 int i, rc = -ENOMEM;
9714 9716
9715 ENTER; 9717 ENTER;
9716 ioa_cfg->res_entries = kzalloc(sizeof(struct ipr_resource_entry) * 9718 ioa_cfg->res_entries = kcalloc(ioa_cfg->max_devs_supported,
9717 ioa_cfg->max_devs_supported, GFP_KERNEL); 9719 sizeof(struct ipr_resource_entry),
9720 GFP_KERNEL);
9718 9721
9719 if (!ioa_cfg->res_entries) 9722 if (!ioa_cfg->res_entries)
9720 goto out; 9723 goto out;
@@ -9775,8 +9778,9 @@ static int ipr_alloc_mem(struct ipr_ioa_cfg *ioa_cfg)
9775 list_add_tail(&ioa_cfg->hostrcb[i]->queue, &ioa_cfg->hostrcb_free_q); 9778 list_add_tail(&ioa_cfg->hostrcb[i]->queue, &ioa_cfg->hostrcb_free_q);
9776 } 9779 }
9777 9780
9778 ioa_cfg->trace = kzalloc(sizeof(struct ipr_trace_entry) * 9781 ioa_cfg->trace = kcalloc(IPR_NUM_TRACE_ENTRIES,
9779 IPR_NUM_TRACE_ENTRIES, GFP_KERNEL); 9782 sizeof(struct ipr_trace_entry),
9783 GFP_KERNEL);
9780 9784
9781 if (!ioa_cfg->trace) 9785 if (!ioa_cfg->trace)
9782 goto out_free_hostrcb_dma; 9786 goto out_free_hostrcb_dma;
diff --git a/drivers/scsi/isci/init.c b/drivers/scsi/isci/init.c
index 05cf4daf8788..08c7b1e25fe4 100644
--- a/drivers/scsi/isci/init.c
+++ b/drivers/scsi/isci/init.c
@@ -232,14 +232,14 @@ static int isci_register_sas_ha(struct isci_host *isci_host)
232 struct asd_sas_phy **sas_phys; 232 struct asd_sas_phy **sas_phys;
233 struct asd_sas_port **sas_ports; 233 struct asd_sas_port **sas_ports;
234 234
235 sas_phys = devm_kzalloc(&isci_host->pdev->dev, 235 sas_phys = devm_kcalloc(&isci_host->pdev->dev,
236 SCI_MAX_PHYS * sizeof(void *), 236 SCI_MAX_PHYS, sizeof(void *),
237 GFP_KERNEL); 237 GFP_KERNEL);
238 if (!sas_phys) 238 if (!sas_phys)
239 return -ENOMEM; 239 return -ENOMEM;
240 240
241 sas_ports = devm_kzalloc(&isci_host->pdev->dev, 241 sas_ports = devm_kcalloc(&isci_host->pdev->dev,
242 SCI_MAX_PORTS * sizeof(void *), 242 SCI_MAX_PORTS, sizeof(void *),
243 GFP_KERNEL); 243 GFP_KERNEL);
244 if (!sas_ports) 244 if (!sas_ports)
245 return -ENOMEM; 245 return -ENOMEM;
diff --git a/drivers/scsi/libiscsi.c b/drivers/scsi/libiscsi.c
index 71bdc0b52cf9..d6093838f5f2 100644
--- a/drivers/scsi/libiscsi.c
+++ b/drivers/scsi/libiscsi.c
@@ -2576,7 +2576,7 @@ iscsi_pool_init(struct iscsi_pool *q, int max, void ***items, int item_size)
2576 * the array. */ 2576 * the array. */
2577 if (items) 2577 if (items)
2578 num_arrays++; 2578 num_arrays++;
2579 q->pool = kvzalloc(num_arrays * max * sizeof(void*), GFP_KERNEL); 2579 q->pool = kvcalloc(num_arrays * max, sizeof(void *), GFP_KERNEL);
2580 if (q->pool == NULL) 2580 if (q->pool == NULL)
2581 return -ENOMEM; 2581 return -ENOMEM;
2582 2582
diff --git a/drivers/scsi/libsas/sas_expander.c b/drivers/scsi/libsas/sas_expander.c
index 8b7114348def..fadc99cb60df 100644
--- a/drivers/scsi/libsas/sas_expander.c
+++ b/drivers/scsi/libsas/sas_expander.c
@@ -443,7 +443,7 @@ static int sas_expander_discover(struct domain_device *dev)
443 struct expander_device *ex = &dev->ex_dev; 443 struct expander_device *ex = &dev->ex_dev;
444 int res = -ENOMEM; 444 int res = -ENOMEM;
445 445
446 ex->ex_phy = kzalloc(sizeof(*ex->ex_phy)*ex->num_phys, GFP_KERNEL); 446 ex->ex_phy = kcalloc(ex->num_phys, sizeof(*ex->ex_phy), GFP_KERNEL);
447 if (!ex->ex_phy) 447 if (!ex->ex_phy)
448 return -ENOMEM; 448 return -ENOMEM;
449 449
diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c
index 7ae343b14630..52cae87da0d2 100644
--- a/drivers/scsi/lpfc/lpfc_init.c
+++ b/drivers/scsi/lpfc/lpfc_init.c
@@ -5723,8 +5723,9 @@ lpfc_sli_driver_resource_setup(struct lpfc_hba *phba)
5723 } 5723 }
5724 5724
5725 if (!phba->sli.sli3_ring) 5725 if (!phba->sli.sli3_ring)
5726 phba->sli.sli3_ring = kzalloc(LPFC_SLI3_MAX_RING * 5726 phba->sli.sli3_ring = kcalloc(LPFC_SLI3_MAX_RING,
5727 sizeof(struct lpfc_sli_ring), GFP_KERNEL); 5727 sizeof(struct lpfc_sli_ring),
5728 GFP_KERNEL);
5728 if (!phba->sli.sli3_ring) 5729 if (!phba->sli.sli3_ring)
5729 return -ENOMEM; 5730 return -ENOMEM;
5730 5731
@@ -6233,7 +6234,7 @@ lpfc_sli4_driver_resource_setup(struct lpfc_hba *phba)
6233 6234
6234 /* Allocate eligible FCF bmask memory for FCF roundrobin failover */ 6235 /* Allocate eligible FCF bmask memory for FCF roundrobin failover */
6235 longs = (LPFC_SLI4_FCF_TBL_INDX_MAX + BITS_PER_LONG - 1)/BITS_PER_LONG; 6236 longs = (LPFC_SLI4_FCF_TBL_INDX_MAX + BITS_PER_LONG - 1)/BITS_PER_LONG;
6236 phba->fcf.fcf_rr_bmask = kzalloc(longs * sizeof(unsigned long), 6237 phba->fcf.fcf_rr_bmask = kcalloc(longs, sizeof(unsigned long),
6237 GFP_KERNEL); 6238 GFP_KERNEL);
6238 if (!phba->fcf.fcf_rr_bmask) { 6239 if (!phba->fcf.fcf_rr_bmask) {
6239 lpfc_printf_log(phba, KERN_ERR, LOG_INIT, 6240 lpfc_printf_log(phba, KERN_ERR, LOG_INIT,
diff --git a/drivers/scsi/lpfc/lpfc_mem.c b/drivers/scsi/lpfc/lpfc_mem.c
index 41361662ff08..0758edb9dfe2 100644
--- a/drivers/scsi/lpfc/lpfc_mem.c
+++ b/drivers/scsi/lpfc/lpfc_mem.c
@@ -120,8 +120,9 @@ lpfc_mem_alloc(struct lpfc_hba *phba, int align)
120 if (!phba->lpfc_mbuf_pool) 120 if (!phba->lpfc_mbuf_pool)
121 goto fail_free_dma_buf_pool; 121 goto fail_free_dma_buf_pool;
122 122
123 pool->elements = kmalloc(sizeof(struct lpfc_dmabuf) * 123 pool->elements = kmalloc_array(LPFC_MBUF_POOL_SIZE,
124 LPFC_MBUF_POOL_SIZE, GFP_KERNEL); 124 sizeof(struct lpfc_dmabuf),
125 GFP_KERNEL);
125 if (!pool->elements) 126 if (!pool->elements)
126 goto fail_free_lpfc_mbuf_pool; 127 goto fail_free_lpfc_mbuf_pool;
127 128
diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c
index 4b70d53acb72..6f3c00a233ec 100644
--- a/drivers/scsi/lpfc/lpfc_sli.c
+++ b/drivers/scsi/lpfc/lpfc_sli.c
@@ -1720,7 +1720,7 @@ lpfc_sli_next_iotag(struct lpfc_hba *phba, struct lpfc_iocbq *iocbq)
1720 - LPFC_IOCBQ_LOOKUP_INCREMENT)) { 1720 - LPFC_IOCBQ_LOOKUP_INCREMENT)) {
1721 new_len = psli->iocbq_lookup_len + LPFC_IOCBQ_LOOKUP_INCREMENT; 1721 new_len = psli->iocbq_lookup_len + LPFC_IOCBQ_LOOKUP_INCREMENT;
1722 spin_unlock_irq(&phba->hbalock); 1722 spin_unlock_irq(&phba->hbalock);
1723 new_arr = kzalloc(new_len * sizeof (struct lpfc_iocbq *), 1723 new_arr = kcalloc(new_len, sizeof(struct lpfc_iocbq *),
1724 GFP_KERNEL); 1724 GFP_KERNEL);
1725 if (new_arr) { 1725 if (new_arr) {
1726 spin_lock_irq(&phba->hbalock); 1726 spin_lock_irq(&phba->hbalock);
@@ -5142,16 +5142,17 @@ lpfc_sli_hba_setup(struct lpfc_hba *phba)
5142 */ 5142 */
5143 if ((phba->vpi_bmask == NULL) && (phba->vpi_ids == NULL)) { 5143 if ((phba->vpi_bmask == NULL) && (phba->vpi_ids == NULL)) {
5144 longs = (phba->max_vpi + BITS_PER_LONG) / BITS_PER_LONG; 5144 longs = (phba->max_vpi + BITS_PER_LONG) / BITS_PER_LONG;
5145 phba->vpi_bmask = kzalloc(longs * sizeof(unsigned long), 5145 phba->vpi_bmask = kcalloc(longs,
5146 sizeof(unsigned long),
5146 GFP_KERNEL); 5147 GFP_KERNEL);
5147 if (!phba->vpi_bmask) { 5148 if (!phba->vpi_bmask) {
5148 rc = -ENOMEM; 5149 rc = -ENOMEM;
5149 goto lpfc_sli_hba_setup_error; 5150 goto lpfc_sli_hba_setup_error;
5150 } 5151 }
5151 5152
5152 phba->vpi_ids = kzalloc( 5153 phba->vpi_ids = kcalloc(phba->max_vpi + 1,
5153 (phba->max_vpi+1) * sizeof(uint16_t), 5154 sizeof(uint16_t),
5154 GFP_KERNEL); 5155 GFP_KERNEL);
5155 if (!phba->vpi_ids) { 5156 if (!phba->vpi_ids) {
5156 kfree(phba->vpi_bmask); 5157 kfree(phba->vpi_bmask);
5157 rc = -ENOMEM; 5158 rc = -ENOMEM;
@@ -5836,14 +5837,14 @@ lpfc_sli4_alloc_extent(struct lpfc_hba *phba, uint16_t type)
5836 length = sizeof(struct lpfc_rsrc_blks); 5837 length = sizeof(struct lpfc_rsrc_blks);
5837 switch (type) { 5838 switch (type) {
5838 case LPFC_RSC_TYPE_FCOE_RPI: 5839 case LPFC_RSC_TYPE_FCOE_RPI:
5839 phba->sli4_hba.rpi_bmask = kzalloc(longs * 5840 phba->sli4_hba.rpi_bmask = kcalloc(longs,
5840 sizeof(unsigned long), 5841 sizeof(unsigned long),
5841 GFP_KERNEL); 5842 GFP_KERNEL);
5842 if (unlikely(!phba->sli4_hba.rpi_bmask)) { 5843 if (unlikely(!phba->sli4_hba.rpi_bmask)) {
5843 rc = -ENOMEM; 5844 rc = -ENOMEM;
5844 goto err_exit; 5845 goto err_exit;
5845 } 5846 }
5846 phba->sli4_hba.rpi_ids = kzalloc(rsrc_id_cnt * 5847 phba->sli4_hba.rpi_ids = kcalloc(rsrc_id_cnt,
5847 sizeof(uint16_t), 5848 sizeof(uint16_t),
5848 GFP_KERNEL); 5849 GFP_KERNEL);
5849 if (unlikely(!phba->sli4_hba.rpi_ids)) { 5850 if (unlikely(!phba->sli4_hba.rpi_ids)) {
@@ -5865,15 +5866,13 @@ lpfc_sli4_alloc_extent(struct lpfc_hba *phba, uint16_t type)
5865 ext_blk_list = &phba->sli4_hba.lpfc_rpi_blk_list; 5866 ext_blk_list = &phba->sli4_hba.lpfc_rpi_blk_list;
5866 break; 5867 break;
5867 case LPFC_RSC_TYPE_FCOE_VPI: 5868 case LPFC_RSC_TYPE_FCOE_VPI:
5868 phba->vpi_bmask = kzalloc(longs * 5869 phba->vpi_bmask = kcalloc(longs, sizeof(unsigned long),
5869 sizeof(unsigned long),
5870 GFP_KERNEL); 5870 GFP_KERNEL);
5871 if (unlikely(!phba->vpi_bmask)) { 5871 if (unlikely(!phba->vpi_bmask)) {
5872 rc = -ENOMEM; 5872 rc = -ENOMEM;
5873 goto err_exit; 5873 goto err_exit;
5874 } 5874 }
5875 phba->vpi_ids = kzalloc(rsrc_id_cnt * 5875 phba->vpi_ids = kcalloc(rsrc_id_cnt, sizeof(uint16_t),
5876 sizeof(uint16_t),
5877 GFP_KERNEL); 5876 GFP_KERNEL);
5878 if (unlikely(!phba->vpi_ids)) { 5877 if (unlikely(!phba->vpi_ids)) {
5879 kfree(phba->vpi_bmask); 5878 kfree(phba->vpi_bmask);
@@ -5887,7 +5886,7 @@ lpfc_sli4_alloc_extent(struct lpfc_hba *phba, uint16_t type)
5887 ext_blk_list = &phba->lpfc_vpi_blk_list; 5886 ext_blk_list = &phba->lpfc_vpi_blk_list;
5888 break; 5887 break;
5889 case LPFC_RSC_TYPE_FCOE_XRI: 5888 case LPFC_RSC_TYPE_FCOE_XRI:
5890 phba->sli4_hba.xri_bmask = kzalloc(longs * 5889 phba->sli4_hba.xri_bmask = kcalloc(longs,
5891 sizeof(unsigned long), 5890 sizeof(unsigned long),
5892 GFP_KERNEL); 5891 GFP_KERNEL);
5893 if (unlikely(!phba->sli4_hba.xri_bmask)) { 5892 if (unlikely(!phba->sli4_hba.xri_bmask)) {
@@ -5895,7 +5894,7 @@ lpfc_sli4_alloc_extent(struct lpfc_hba *phba, uint16_t type)
5895 goto err_exit; 5894 goto err_exit;
5896 } 5895 }
5897 phba->sli4_hba.max_cfg_param.xri_used = 0; 5896 phba->sli4_hba.max_cfg_param.xri_used = 0;
5898 phba->sli4_hba.xri_ids = kzalloc(rsrc_id_cnt * 5897 phba->sli4_hba.xri_ids = kcalloc(rsrc_id_cnt,
5899 sizeof(uint16_t), 5898 sizeof(uint16_t),
5900 GFP_KERNEL); 5899 GFP_KERNEL);
5901 if (unlikely(!phba->sli4_hba.xri_ids)) { 5900 if (unlikely(!phba->sli4_hba.xri_ids)) {
@@ -5910,14 +5909,14 @@ lpfc_sli4_alloc_extent(struct lpfc_hba *phba, uint16_t type)
5910 ext_blk_list = &phba->sli4_hba.lpfc_xri_blk_list; 5909 ext_blk_list = &phba->sli4_hba.lpfc_xri_blk_list;
5911 break; 5910 break;
5912 case LPFC_RSC_TYPE_FCOE_VFI: 5911 case LPFC_RSC_TYPE_FCOE_VFI:
5913 phba->sli4_hba.vfi_bmask = kzalloc(longs * 5912 phba->sli4_hba.vfi_bmask = kcalloc(longs,
5914 sizeof(unsigned long), 5913 sizeof(unsigned long),
5915 GFP_KERNEL); 5914 GFP_KERNEL);
5916 if (unlikely(!phba->sli4_hba.vfi_bmask)) { 5915 if (unlikely(!phba->sli4_hba.vfi_bmask)) {
5917 rc = -ENOMEM; 5916 rc = -ENOMEM;
5918 goto err_exit; 5917 goto err_exit;
5919 } 5918 }
5920 phba->sli4_hba.vfi_ids = kzalloc(rsrc_id_cnt * 5919 phba->sli4_hba.vfi_ids = kcalloc(rsrc_id_cnt,
5921 sizeof(uint16_t), 5920 sizeof(uint16_t),
5922 GFP_KERNEL); 5921 GFP_KERNEL);
5923 if (unlikely(!phba->sli4_hba.vfi_ids)) { 5922 if (unlikely(!phba->sli4_hba.vfi_ids)) {
@@ -6250,15 +6249,14 @@ lpfc_sli4_alloc_resource_identifiers(struct lpfc_hba *phba)
6250 } 6249 }
6251 base = phba->sli4_hba.max_cfg_param.rpi_base; 6250 base = phba->sli4_hba.max_cfg_param.rpi_base;
6252 longs = (count + BITS_PER_LONG - 1) / BITS_PER_LONG; 6251 longs = (count + BITS_PER_LONG - 1) / BITS_PER_LONG;
6253 phba->sli4_hba.rpi_bmask = kzalloc(longs * 6252 phba->sli4_hba.rpi_bmask = kcalloc(longs,
6254 sizeof(unsigned long), 6253 sizeof(unsigned long),
6255 GFP_KERNEL); 6254 GFP_KERNEL);
6256 if (unlikely(!phba->sli4_hba.rpi_bmask)) { 6255 if (unlikely(!phba->sli4_hba.rpi_bmask)) {
6257 rc = -ENOMEM; 6256 rc = -ENOMEM;
6258 goto err_exit; 6257 goto err_exit;
6259 } 6258 }
6260 phba->sli4_hba.rpi_ids = kzalloc(count * 6259 phba->sli4_hba.rpi_ids = kcalloc(count, sizeof(uint16_t),
6261 sizeof(uint16_t),
6262 GFP_KERNEL); 6260 GFP_KERNEL);
6263 if (unlikely(!phba->sli4_hba.rpi_ids)) { 6261 if (unlikely(!phba->sli4_hba.rpi_ids)) {
6264 rc = -ENOMEM; 6262 rc = -ENOMEM;
@@ -6279,15 +6277,13 @@ lpfc_sli4_alloc_resource_identifiers(struct lpfc_hba *phba)
6279 } 6277 }
6280 base = phba->sli4_hba.max_cfg_param.vpi_base; 6278 base = phba->sli4_hba.max_cfg_param.vpi_base;
6281 longs = (count + BITS_PER_LONG - 1) / BITS_PER_LONG; 6279 longs = (count + BITS_PER_LONG - 1) / BITS_PER_LONG;
6282 phba->vpi_bmask = kzalloc(longs * 6280 phba->vpi_bmask = kcalloc(longs, sizeof(unsigned long),
6283 sizeof(unsigned long),
6284 GFP_KERNEL); 6281 GFP_KERNEL);
6285 if (unlikely(!phba->vpi_bmask)) { 6282 if (unlikely(!phba->vpi_bmask)) {
6286 rc = -ENOMEM; 6283 rc = -ENOMEM;
6287 goto free_rpi_ids; 6284 goto free_rpi_ids;
6288 } 6285 }
6289 phba->vpi_ids = kzalloc(count * 6286 phba->vpi_ids = kcalloc(count, sizeof(uint16_t),
6290 sizeof(uint16_t),
6291 GFP_KERNEL); 6287 GFP_KERNEL);
6292 if (unlikely(!phba->vpi_ids)) { 6288 if (unlikely(!phba->vpi_ids)) {
6293 rc = -ENOMEM; 6289 rc = -ENOMEM;
@@ -6308,7 +6304,7 @@ lpfc_sli4_alloc_resource_identifiers(struct lpfc_hba *phba)
6308 } 6304 }
6309 base = phba->sli4_hba.max_cfg_param.xri_base; 6305 base = phba->sli4_hba.max_cfg_param.xri_base;
6310 longs = (count + BITS_PER_LONG - 1) / BITS_PER_LONG; 6306 longs = (count + BITS_PER_LONG - 1) / BITS_PER_LONG;
6311 phba->sli4_hba.xri_bmask = kzalloc(longs * 6307 phba->sli4_hba.xri_bmask = kcalloc(longs,
6312 sizeof(unsigned long), 6308 sizeof(unsigned long),
6313 GFP_KERNEL); 6309 GFP_KERNEL);
6314 if (unlikely(!phba->sli4_hba.xri_bmask)) { 6310 if (unlikely(!phba->sli4_hba.xri_bmask)) {
@@ -6316,8 +6312,7 @@ lpfc_sli4_alloc_resource_identifiers(struct lpfc_hba *phba)
6316 goto free_vpi_ids; 6312 goto free_vpi_ids;
6317 } 6313 }
6318 phba->sli4_hba.max_cfg_param.xri_used = 0; 6314 phba->sli4_hba.max_cfg_param.xri_used = 0;
6319 phba->sli4_hba.xri_ids = kzalloc(count * 6315 phba->sli4_hba.xri_ids = kcalloc(count, sizeof(uint16_t),
6320 sizeof(uint16_t),
6321 GFP_KERNEL); 6316 GFP_KERNEL);
6322 if (unlikely(!phba->sli4_hba.xri_ids)) { 6317 if (unlikely(!phba->sli4_hba.xri_ids)) {
6323 rc = -ENOMEM; 6318 rc = -ENOMEM;
@@ -6338,15 +6333,14 @@ lpfc_sli4_alloc_resource_identifiers(struct lpfc_hba *phba)
6338 } 6333 }
6339 base = phba->sli4_hba.max_cfg_param.vfi_base; 6334 base = phba->sli4_hba.max_cfg_param.vfi_base;
6340 longs = (count + BITS_PER_LONG - 1) / BITS_PER_LONG; 6335 longs = (count + BITS_PER_LONG - 1) / BITS_PER_LONG;
6341 phba->sli4_hba.vfi_bmask = kzalloc(longs * 6336 phba->sli4_hba.vfi_bmask = kcalloc(longs,
6342 sizeof(unsigned long), 6337 sizeof(unsigned long),
6343 GFP_KERNEL); 6338 GFP_KERNEL);
6344 if (unlikely(!phba->sli4_hba.vfi_bmask)) { 6339 if (unlikely(!phba->sli4_hba.vfi_bmask)) {
6345 rc = -ENOMEM; 6340 rc = -ENOMEM;
6346 goto free_xri_ids; 6341 goto free_xri_ids;
6347 } 6342 }
6348 phba->sli4_hba.vfi_ids = kzalloc(count * 6343 phba->sli4_hba.vfi_ids = kcalloc(count, sizeof(uint16_t),
6349 sizeof(uint16_t),
6350 GFP_KERNEL); 6344 GFP_KERNEL);
6351 if (unlikely(!phba->sli4_hba.vfi_ids)) { 6345 if (unlikely(!phba->sli4_hba.vfi_ids)) {
6352 rc = -ENOMEM; 6346 rc = -ENOMEM;
diff --git a/drivers/scsi/lpfc/lpfc_vport.c b/drivers/scsi/lpfc/lpfc_vport.c
index c9d33b1268cb..81bc12dedf41 100644
--- a/drivers/scsi/lpfc/lpfc_vport.c
+++ b/drivers/scsi/lpfc/lpfc_vport.c
@@ -840,7 +840,7 @@ lpfc_create_vport_work_array(struct lpfc_hba *phba)
840 struct lpfc_vport *port_iterator; 840 struct lpfc_vport *port_iterator;
841 struct lpfc_vport **vports; 841 struct lpfc_vport **vports;
842 int index = 0; 842 int index = 0;
843 vports = kzalloc((phba->max_vports + 1) * sizeof(struct lpfc_vport *), 843 vports = kcalloc(phba->max_vports + 1, sizeof(struct lpfc_vport *),
844 GFP_KERNEL); 844 GFP_KERNEL);
845 if (vports == NULL) 845 if (vports == NULL)
846 return NULL; 846 return NULL;
diff --git a/drivers/scsi/mac53c94.c b/drivers/scsi/mac53c94.c
index 8c4d3003b68b..177701dfdfcb 100644
--- a/drivers/scsi/mac53c94.c
+++ b/drivers/scsi/mac53c94.c
@@ -464,8 +464,9 @@ static int mac53c94_probe(struct macio_dev *mdev, const struct of_device_id *mat
464 * +1 to allow for aligning. 464 * +1 to allow for aligning.
465 * XXX FIXME: Use DMA consistent routines 465 * XXX FIXME: Use DMA consistent routines
466 */ 466 */
467 dma_cmd_space = kmalloc((host->sg_tablesize + 2) * 467 dma_cmd_space = kmalloc_array(host->sg_tablesize + 2,
468 sizeof(struct dbdma_cmd), GFP_KERNEL); 468 sizeof(struct dbdma_cmd),
469 GFP_KERNEL);
469 if (dma_cmd_space == 0) { 470 if (dma_cmd_space == 0) {
470 printk(KERN_ERR "mac53c94: couldn't allocate dma " 471 printk(KERN_ERR "mac53c94: couldn't allocate dma "
471 "command space for %pOF\n", node); 472 "command space for %pOF\n", node);
diff --git a/drivers/scsi/megaraid.c b/drivers/scsi/megaraid.c
index 3b3767e240d8..8e8cf1145d7f 100644
--- a/drivers/scsi/megaraid.c
+++ b/drivers/scsi/megaraid.c
@@ -4292,7 +4292,8 @@ megaraid_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
4292 goto out_host_put; 4292 goto out_host_put;
4293 } 4293 }
4294 4294
4295 adapter->scb_list = kmalloc(sizeof(scb_t) * MAX_COMMANDS, GFP_KERNEL); 4295 adapter->scb_list = kmalloc_array(MAX_COMMANDS, sizeof(scb_t),
4296 GFP_KERNEL);
4296 if (!adapter->scb_list) { 4297 if (!adapter->scb_list) {
4297 dev_warn(&pdev->dev, "out of RAM\n"); 4298 dev_warn(&pdev->dev, "out of RAM\n");
4298 goto out_free_cmd_buffer; 4299 goto out_free_cmd_buffer;
diff --git a/drivers/scsi/megaraid/megaraid_mm.c b/drivers/scsi/megaraid/megaraid_mm.c
index bb802b0c12b8..8428247015db 100644
--- a/drivers/scsi/megaraid/megaraid_mm.c
+++ b/drivers/scsi/megaraid/megaraid_mm.c
@@ -935,10 +935,12 @@ mraid_mm_register_adp(mraid_mmadp_t *lld_adp)
935 * Allocate single blocks of memory for all required kiocs, 935 * Allocate single blocks of memory for all required kiocs,
936 * mailboxes and passthru structures. 936 * mailboxes and passthru structures.
937 */ 937 */
938 adapter->kioc_list = kmalloc(sizeof(uioc_t) * lld_adp->max_kioc, 938 adapter->kioc_list = kmalloc_array(lld_adp->max_kioc,
939 GFP_KERNEL); 939 sizeof(uioc_t),
940 adapter->mbox_list = kmalloc(sizeof(mbox64_t) * lld_adp->max_kioc, 940 GFP_KERNEL);
941 GFP_KERNEL); 941 adapter->mbox_list = kmalloc_array(lld_adp->max_kioc,
942 sizeof(mbox64_t),
943 GFP_KERNEL);
942 adapter->pthru_dma_pool = dma_pool_create("megaraid mm pthru pool", 944 adapter->pthru_dma_pool = dma_pool_create("megaraid mm pthru pool",
943 &adapter->pdev->dev, 945 &adapter->pdev->dev,
944 sizeof(mraid_passthru_t), 946 sizeof(mraid_passthru_t),
diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c
index c5d0c4bd71d2..71d97573a667 100644
--- a/drivers/scsi/megaraid/megaraid_sas_base.c
+++ b/drivers/scsi/megaraid/megaraid_sas_base.c
@@ -5419,9 +5419,9 @@ static int megasas_init_fw(struct megasas_instance *instance)
5419 /* stream detection initialization */ 5419 /* stream detection initialization */
5420 if (instance->adapter_type == VENTURA_SERIES) { 5420 if (instance->adapter_type == VENTURA_SERIES) {
5421 fusion->stream_detect_by_ld = 5421 fusion->stream_detect_by_ld =
5422 kzalloc(sizeof(struct LD_STREAM_DETECT *) 5422 kcalloc(MAX_LOGICAL_DRIVES_EXT,
5423 * MAX_LOGICAL_DRIVES_EXT, 5423 sizeof(struct LD_STREAM_DETECT *),
5424 GFP_KERNEL); 5424 GFP_KERNEL);
5425 if (!fusion->stream_detect_by_ld) { 5425 if (!fusion->stream_detect_by_ld) {
5426 dev_err(&instance->pdev->dev, 5426 dev_err(&instance->pdev->dev,
5427 "unable to allocate stream detection for pool of LDs\n"); 5427 "unable to allocate stream detection for pool of LDs\n");
@@ -6139,7 +6139,7 @@ static inline int megasas_alloc_mfi_ctrl_mem(struct megasas_instance *instance)
6139 */ 6139 */
6140static int megasas_alloc_ctrl_mem(struct megasas_instance *instance) 6140static int megasas_alloc_ctrl_mem(struct megasas_instance *instance)
6141{ 6141{
6142 instance->reply_map = kzalloc(sizeof(unsigned int) * nr_cpu_ids, 6142 instance->reply_map = kcalloc(nr_cpu_ids, sizeof(unsigned int),
6143 GFP_KERNEL); 6143 GFP_KERNEL);
6144 if (!instance->reply_map) 6144 if (!instance->reply_map)
6145 return -ENOMEM; 6145 return -ENOMEM;
diff --git a/drivers/scsi/megaraid/megaraid_sas_fusion.c b/drivers/scsi/megaraid/megaraid_sas_fusion.c
index 98a7a090b75e..94c23ad51179 100644
--- a/drivers/scsi/megaraid/megaraid_sas_fusion.c
+++ b/drivers/scsi/megaraid/megaraid_sas_fusion.c
@@ -487,7 +487,7 @@ megasas_alloc_cmdlist_fusion(struct megasas_instance *instance)
487 * commands. 487 * commands.
488 */ 488 */
489 fusion->cmd_list = 489 fusion->cmd_list =
490 kzalloc(sizeof(struct megasas_cmd_fusion *) * max_mpt_cmd, 490 kcalloc(max_mpt_cmd, sizeof(struct megasas_cmd_fusion *),
491 GFP_KERNEL); 491 GFP_KERNEL);
492 if (!fusion->cmd_list) { 492 if (!fusion->cmd_list) {
493 dev_err(&instance->pdev->dev, 493 dev_err(&instance->pdev->dev,
@@ -4829,8 +4829,9 @@ megasas_alloc_fusion_context(struct megasas_instance *instance)
4829 (PLD_SPAN_INFO)__get_free_pages(GFP_KERNEL | __GFP_ZERO, 4829 (PLD_SPAN_INFO)__get_free_pages(GFP_KERNEL | __GFP_ZERO,
4830 fusion->log_to_span_pages); 4830 fusion->log_to_span_pages);
4831 if (!fusion->log_to_span) { 4831 if (!fusion->log_to_span) {
4832 fusion->log_to_span = vzalloc(MAX_LOGICAL_DRIVES_EXT * 4832 fusion->log_to_span =
4833 sizeof(LD_SPAN_INFO)); 4833 vzalloc(array_size(MAX_LOGICAL_DRIVES_EXT,
4834 sizeof(LD_SPAN_INFO)));
4834 if (!fusion->log_to_span) { 4835 if (!fusion->log_to_span) {
4835 dev_err(&instance->pdev->dev, "Failed from %s %d\n", 4836 dev_err(&instance->pdev->dev, "Failed from %s %d\n",
4836 __func__, __LINE__); 4837 __func__, __LINE__);
@@ -4844,8 +4845,9 @@ megasas_alloc_fusion_context(struct megasas_instance *instance)
4844 (struct LD_LOAD_BALANCE_INFO *)__get_free_pages(GFP_KERNEL | __GFP_ZERO, 4845 (struct LD_LOAD_BALANCE_INFO *)__get_free_pages(GFP_KERNEL | __GFP_ZERO,
4845 fusion->load_balance_info_pages); 4846 fusion->load_balance_info_pages);
4846 if (!fusion->load_balance_info) { 4847 if (!fusion->load_balance_info) {
4847 fusion->load_balance_info = vzalloc(MAX_LOGICAL_DRIVES_EXT * 4848 fusion->load_balance_info =
4848 sizeof(struct LD_LOAD_BALANCE_INFO)); 4849 vzalloc(array_size(MAX_LOGICAL_DRIVES_EXT,
4850 sizeof(struct LD_LOAD_BALANCE_INFO)));
4849 if (!fusion->load_balance_info) 4851 if (!fusion->load_balance_info)
4850 dev_err(&instance->pdev->dev, "Failed to allocate load_balance_info, " 4852 dev_err(&instance->pdev->dev, "Failed to allocate load_balance_info, "
4851 "continuing without Load Balance support\n"); 4853 "continuing without Load Balance support\n");
diff --git a/drivers/scsi/osst.c b/drivers/scsi/osst.c
index 2bbe797f8c3d..7a1a1edde35d 100644
--- a/drivers/scsi/osst.c
+++ b/drivers/scsi/osst.c
@@ -381,7 +381,7 @@ static int osst_execute(struct osst_request *SRpnt, const unsigned char *cmd,
381 struct scatterlist *sg, *sgl = (struct scatterlist *)buffer; 381 struct scatterlist *sg, *sgl = (struct scatterlist *)buffer;
382 int i; 382 int i;
383 383
384 pages = kzalloc(use_sg * sizeof(struct page *), GFP_KERNEL); 384 pages = kcalloc(use_sg, sizeof(struct page *), GFP_KERNEL);
385 if (!pages) 385 if (!pages)
386 goto free_req; 386 goto free_req;
387 387
@@ -1488,7 +1488,7 @@ static int osst_read_back_buffer_and_rewrite(struct osst_tape * STp, struct osst
1488 int dbg = debugging; 1488 int dbg = debugging;
1489#endif 1489#endif
1490 1490
1491 if ((buffer = vmalloc((nframes + 1) * OS_DATA_SIZE)) == NULL) 1491 if ((buffer = vmalloc(array_size((nframes + 1), OS_DATA_SIZE))) == NULL)
1492 return (-EIO); 1492 return (-EIO);
1493 1493
1494 printk(KERN_INFO "%s:I: Reading back %d frames from drive buffer%s\n", 1494 printk(KERN_INFO "%s:I: Reading back %d frames from drive buffer%s\n",
@@ -5856,7 +5856,9 @@ static int osst_probe(struct device *dev)
5856 /* if this is the first attach, build the infrastructure */ 5856 /* if this is the first attach, build the infrastructure */
5857 write_lock(&os_scsi_tapes_lock); 5857 write_lock(&os_scsi_tapes_lock);
5858 if (os_scsi_tapes == NULL) { 5858 if (os_scsi_tapes == NULL) {
5859 os_scsi_tapes = kmalloc(osst_max_dev * sizeof(struct osst_tape *), GFP_ATOMIC); 5859 os_scsi_tapes = kmalloc_array(osst_max_dev,
5860 sizeof(struct osst_tape *),
5861 GFP_ATOMIC);
5860 if (os_scsi_tapes == NULL) { 5862 if (os_scsi_tapes == NULL) {
5861 write_unlock(&os_scsi_tapes_lock); 5863 write_unlock(&os_scsi_tapes_lock);
5862 printk(KERN_ERR "osst :E: Unable to allocate array for OnStream SCSI tapes.\n"); 5864 printk(KERN_ERR "osst :E: Unable to allocate array for OnStream SCSI tapes.\n");
diff --git a/drivers/scsi/pm8001/pm8001_ctl.c b/drivers/scsi/pm8001/pm8001_ctl.c
index 596f3ff965f5..d193961ea82f 100644
--- a/drivers/scsi/pm8001/pm8001_ctl.c
+++ b/drivers/scsi/pm8001/pm8001_ctl.c
@@ -705,7 +705,7 @@ static ssize_t pm8001_store_update_fw(struct device *cdev,
705 return -EINPROGRESS; 705 return -EINPROGRESS;
706 pm8001_ha->fw_status = FLASH_IN_PROGRESS; 706 pm8001_ha->fw_status = FLASH_IN_PROGRESS;
707 707
708 cmd_ptr = kzalloc(count*2, GFP_KERNEL); 708 cmd_ptr = kcalloc(count, 2, GFP_KERNEL);
709 if (!cmd_ptr) { 709 if (!cmd_ptr) {
710 pm8001_ha->fw_status = FAIL_OUT_MEMORY; 710 pm8001_ha->fw_status = FAIL_OUT_MEMORY;
711 return -ENOMEM; 711 return -ENOMEM;
diff --git a/drivers/scsi/pmcraid.c b/drivers/scsi/pmcraid.c
index 95530393872d..4e86994e10e8 100644
--- a/drivers/scsi/pmcraid.c
+++ b/drivers/scsi/pmcraid.c
@@ -4873,8 +4873,9 @@ static int pmcraid_allocate_config_buffers(struct pmcraid_instance *pinstance)
4873 int i; 4873 int i;
4874 4874
4875 pinstance->res_entries = 4875 pinstance->res_entries =
4876 kzalloc(sizeof(struct pmcraid_resource_entry) * 4876 kcalloc(PMCRAID_MAX_RESOURCES,
4877 PMCRAID_MAX_RESOURCES, GFP_KERNEL); 4877 sizeof(struct pmcraid_resource_entry),
4878 GFP_KERNEL);
4878 4879
4879 if (NULL == pinstance->res_entries) { 4880 if (NULL == pinstance->res_entries) {
4880 pmcraid_err("failed to allocate memory for resource table\n"); 4881 pmcraid_err("failed to allocate memory for resource table\n");
diff --git a/drivers/scsi/qedi/qedi_main.c b/drivers/scsi/qedi/qedi_main.c
index 32ee7f62fef9..cf274a79e77a 100644
--- a/drivers/scsi/qedi/qedi_main.c
+++ b/drivers/scsi/qedi/qedi_main.c
@@ -524,7 +524,7 @@ static int qedi_init_id_tbl(struct qedi_portid_tbl *id_tbl, u16 size,
524 id_tbl->max = size; 524 id_tbl->max = size;
525 id_tbl->next = next; 525 id_tbl->next = next;
526 spin_lock_init(&id_tbl->lock); 526 spin_lock_init(&id_tbl->lock);
527 id_tbl->table = kzalloc(DIV_ROUND_UP(size, 32) * 4, GFP_KERNEL); 527 id_tbl->table = kcalloc(DIV_ROUND_UP(size, 32), 4, GFP_KERNEL);
528 if (!id_tbl->table) 528 if (!id_tbl->table)
529 return -ENOMEM; 529 return -ENOMEM;
530 530
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
index 1aa3720ea2ed..fbbb328c64d5 100644
--- a/drivers/scsi/qla2xxx/qla_init.c
+++ b/drivers/scsi/qla2xxx/qla_init.c
@@ -3089,8 +3089,9 @@ qla2x00_alloc_outstanding_cmds(struct qla_hw_data *ha, struct req_que *req)
3089 req->num_outstanding_cmds = ha->cur_fw_iocb_count; 3089 req->num_outstanding_cmds = ha->cur_fw_iocb_count;
3090 } 3090 }
3091 3091
3092 req->outstanding_cmds = kzalloc(sizeof(srb_t *) * 3092 req->outstanding_cmds = kcalloc(req->num_outstanding_cmds,
3093 req->num_outstanding_cmds, GFP_KERNEL); 3093 sizeof(srb_t *),
3094 GFP_KERNEL);
3094 3095
3095 if (!req->outstanding_cmds) { 3096 if (!req->outstanding_cmds) {
3096 /* 3097 /*
@@ -3098,8 +3099,9 @@ qla2x00_alloc_outstanding_cmds(struct qla_hw_data *ha, struct req_que *req)
3098 * initialization. 3099 * initialization.
3099 */ 3100 */
3100 req->num_outstanding_cmds = MIN_OUTSTANDING_COMMANDS; 3101 req->num_outstanding_cmds = MIN_OUTSTANDING_COMMANDS;
3101 req->outstanding_cmds = kzalloc(sizeof(srb_t *) * 3102 req->outstanding_cmds = kcalloc(req->num_outstanding_cmds,
3102 req->num_outstanding_cmds, GFP_KERNEL); 3103 sizeof(srb_t *),
3104 GFP_KERNEL);
3103 3105
3104 if (!req->outstanding_cmds) { 3106 if (!req->outstanding_cmds) {
3105 ql_log(ql_log_fatal, NULL, 0x0126, 3107 ql_log(ql_log_fatal, NULL, 0x0126,
diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c
index a3dc83f9444d..d14d3911516d 100644
--- a/drivers/scsi/qla2xxx/qla_isr.c
+++ b/drivers/scsi/qla2xxx/qla_isr.c
@@ -3434,8 +3434,9 @@ qla24xx_enable_msix(struct qla_hw_data *ha, struct rsp_que *rsp)
3434 "Adjusted Max no of queues pairs: %d.\n", ha->max_qpairs); 3434 "Adjusted Max no of queues pairs: %d.\n", ha->max_qpairs);
3435 } 3435 }
3436 } 3436 }
3437 ha->msix_entries = kzalloc(sizeof(struct qla_msix_entry) * 3437 ha->msix_entries = kcalloc(ha->msix_count,
3438 ha->msix_count, GFP_KERNEL); 3438 sizeof(struct qla_msix_entry),
3439 GFP_KERNEL);
3439 if (!ha->msix_entries) { 3440 if (!ha->msix_entries) {
3440 ql_log(ql_log_fatal, vha, 0x00c8, 3441 ql_log(ql_log_fatal, vha, 0x00c8,
3441 "Failed to allocate memory for ha->msix_entries.\n"); 3442 "Failed to allocate memory for ha->msix_entries.\n");
diff --git a/drivers/scsi/qla2xxx/qla_nx.c b/drivers/scsi/qla2xxx/qla_nx.c
index 872d66dd79cd..de2bc78449e7 100644
--- a/drivers/scsi/qla2xxx/qla_nx.c
+++ b/drivers/scsi/qla2xxx/qla_nx.c
@@ -1230,7 +1230,7 @@ qla82xx_pinit_from_rom(scsi_qla_host_t *vha)
1230 ql_log(ql_log_info, vha, 0x0072, 1230 ql_log(ql_log_info, vha, 0x0072,
1231 "%d CRB init values found in ROM.\n", n); 1231 "%d CRB init values found in ROM.\n", n);
1232 1232
1233 buf = kmalloc(n * sizeof(struct crb_addr_pair), GFP_KERNEL); 1233 buf = kmalloc_array(n, sizeof(struct crb_addr_pair), GFP_KERNEL);
1234 if (buf == NULL) { 1234 if (buf == NULL) {
1235 ql_log(ql_log_fatal, vha, 0x010c, 1235 ql_log(ql_log_fatal, vha, 0x010c,
1236 "Unable to allocate memory.\n"); 1236 "Unable to allocate memory.\n");
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index 817c18a8e84d..e881fce7477a 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -410,7 +410,7 @@ static int qla2x00_alloc_queues(struct qla_hw_data *ha, struct req_que *req,
410 struct rsp_que *rsp) 410 struct rsp_que *rsp)
411{ 411{
412 scsi_qla_host_t *vha = pci_get_drvdata(ha->pdev); 412 scsi_qla_host_t *vha = pci_get_drvdata(ha->pdev);
413 ha->req_q_map = kzalloc(sizeof(struct req_que *) * ha->max_req_queues, 413 ha->req_q_map = kcalloc(ha->max_req_queues, sizeof(struct req_que *),
414 GFP_KERNEL); 414 GFP_KERNEL);
415 if (!ha->req_q_map) { 415 if (!ha->req_q_map) {
416 ql_log(ql_log_fatal, vha, 0x003b, 416 ql_log(ql_log_fatal, vha, 0x003b,
@@ -418,7 +418,7 @@ static int qla2x00_alloc_queues(struct qla_hw_data *ha, struct req_que *req,
418 goto fail_req_map; 418 goto fail_req_map;
419 } 419 }
420 420
421 ha->rsp_q_map = kzalloc(sizeof(struct rsp_que *) * ha->max_rsp_queues, 421 ha->rsp_q_map = kcalloc(ha->max_rsp_queues, sizeof(struct rsp_que *),
422 GFP_KERNEL); 422 GFP_KERNEL);
423 if (!ha->rsp_q_map) { 423 if (!ha->rsp_q_map) {
424 ql_log(ql_log_fatal, vha, 0x003c, 424 ql_log(ql_log_fatal, vha, 0x003c,
@@ -4045,8 +4045,9 @@ qla2x00_mem_alloc(struct qla_hw_data *ha, uint16_t req_len, uint16_t rsp_len,
4045 (*rsp)->ring); 4045 (*rsp)->ring);
4046 /* Allocate memory for NVRAM data for vports */ 4046 /* Allocate memory for NVRAM data for vports */
4047 if (ha->nvram_npiv_size) { 4047 if (ha->nvram_npiv_size) {
4048 ha->npiv_info = kzalloc(sizeof(struct qla_npiv_entry) * 4048 ha->npiv_info = kcalloc(ha->nvram_npiv_size,
4049 ha->nvram_npiv_size, GFP_KERNEL); 4049 sizeof(struct qla_npiv_entry),
4050 GFP_KERNEL);
4050 if (!ha->npiv_info) { 4051 if (!ha->npiv_info) {
4051 ql_log_pci(ql_log_fatal, ha->pdev, 0x002d, 4052 ql_log_pci(ql_log_fatal, ha->pdev, 0x002d,
4052 "Failed to allocate memory for npiv_info.\n"); 4053 "Failed to allocate memory for npiv_info.\n");
@@ -4080,8 +4081,9 @@ qla2x00_mem_alloc(struct qla_hw_data *ha, uint16_t req_len, uint16_t rsp_len,
4080 INIT_LIST_HEAD(&ha->vp_list); 4081 INIT_LIST_HEAD(&ha->vp_list);
4081 4082
4082 /* Allocate memory for our loop_id bitmap */ 4083 /* Allocate memory for our loop_id bitmap */
4083 ha->loop_id_map = kzalloc(BITS_TO_LONGS(LOOPID_MAP_SIZE) * sizeof(long), 4084 ha->loop_id_map = kcalloc(BITS_TO_LONGS(LOOPID_MAP_SIZE),
4084 GFP_KERNEL); 4085 sizeof(long),
4086 GFP_KERNEL);
4085 if (!ha->loop_id_map) 4087 if (!ha->loop_id_map)
4086 goto fail_loop_id_map; 4088 goto fail_loop_id_map;
4087 else { 4089 else {
diff --git a/drivers/scsi/qla2xxx/qla_target.c b/drivers/scsi/qla2xxx/qla_target.c
index b85c833099ff..0fea2e2326be 100644
--- a/drivers/scsi/qla2xxx/qla_target.c
+++ b/drivers/scsi/qla2xxx/qla_target.c
@@ -6248,8 +6248,9 @@ int qlt_add_target(struct qla_hw_data *ha, struct scsi_qla_host *base_vha)
6248 return -ENOMEM; 6248 return -ENOMEM;
6249 } 6249 }
6250 6250
6251 tgt->qphints = kzalloc((ha->max_qpairs + 1) * 6251 tgt->qphints = kcalloc(ha->max_qpairs + 1,
6252 sizeof(struct qla_qpair_hint), GFP_KERNEL); 6252 sizeof(struct qla_qpair_hint),
6253 GFP_KERNEL);
6253 if (!tgt->qphints) { 6254 if (!tgt->qphints) {
6254 kfree(tgt); 6255 kfree(tgt);
6255 ql_log(ql_log_warn, base_vha, 0x0197, 6256 ql_log(ql_log_warn, base_vha, 0x0197,
@@ -7089,8 +7090,9 @@ qlt_mem_alloc(struct qla_hw_data *ha)
7089 if (!QLA_TGT_MODE_ENABLED()) 7090 if (!QLA_TGT_MODE_ENABLED())
7090 return 0; 7091 return 0;
7091 7092
7092 ha->tgt.tgt_vp_map = kzalloc(sizeof(struct qla_tgt_vp_map) * 7093 ha->tgt.tgt_vp_map = kcalloc(MAX_MULTI_ID_FABRIC,
7093 MAX_MULTI_ID_FABRIC, GFP_KERNEL); 7094 sizeof(struct qla_tgt_vp_map),
7095 GFP_KERNEL);
7094 if (!ha->tgt.tgt_vp_map) 7096 if (!ha->tgt.tgt_vp_map)
7095 return -ENOMEM; 7097 return -ENOMEM;
7096 7098
diff --git a/drivers/scsi/qla2xxx/tcm_qla2xxx.c b/drivers/scsi/qla2xxx/tcm_qla2xxx.c
index 0c2e82af9c0a..7732e9336d43 100644
--- a/drivers/scsi/qla2xxx/tcm_qla2xxx.c
+++ b/drivers/scsi/qla2xxx/tcm_qla2xxx.c
@@ -1661,7 +1661,9 @@ static int tcm_qla2xxx_init_lport(struct tcm_qla2xxx_lport *lport)
1661 return rc; 1661 return rc;
1662 } 1662 }
1663 1663
1664 lport->lport_loopid_map = vzalloc(sizeof(struct tcm_qla2xxx_fc_loopid) * 65536); 1664 lport->lport_loopid_map =
1665 vzalloc(array_size(65536,
1666 sizeof(struct tcm_qla2xxx_fc_loopid)));
1665 if (!lport->lport_loopid_map) { 1667 if (!lport->lport_loopid_map) {
1666 pr_err("Unable to allocate lport->lport_loopid_map of %zu bytes\n", 1668 pr_err("Unable to allocate lport->lport_loopid_map of %zu bytes\n",
1667 sizeof(struct tcm_qla2xxx_fc_loopid) * 65536); 1669 sizeof(struct tcm_qla2xxx_fc_loopid) * 65536);
diff --git a/drivers/scsi/qla4xxx/ql4_nx.c b/drivers/scsi/qla4xxx/ql4_nx.c
index 43f73583ef5c..d2b333d629be 100644
--- a/drivers/scsi/qla4xxx/ql4_nx.c
+++ b/drivers/scsi/qla4xxx/ql4_nx.c
@@ -1077,7 +1077,7 @@ qla4_82xx_pinit_from_rom(struct scsi_qla_host *ha, int verbose)
1077 ql4_printk(KERN_INFO, ha, 1077 ql4_printk(KERN_INFO, ha,
1078 "%s: %d CRB init values found in ROM.\n", DRIVER_NAME, n); 1078 "%s: %d CRB init values found in ROM.\n", DRIVER_NAME, n);
1079 1079
1080 buf = kmalloc(n * sizeof(struct crb_addr_pair), GFP_KERNEL); 1080 buf = kmalloc_array(n, sizeof(struct crb_addr_pair), GFP_KERNEL);
1081 if (buf == NULL) { 1081 if (buf == NULL) {
1082 ql4_printk(KERN_WARNING, ha, 1082 ql4_printk(KERN_WARNING, ha,
1083 "%s: [ERROR] Unable to malloc memory.\n", DRIVER_NAME); 1083 "%s: [ERROR] Unable to malloc memory.\n", DRIVER_NAME);
diff --git a/drivers/scsi/scsi_debug.c b/drivers/scsi/scsi_debug.c
index 656c98e116a9..24d7496cd9e2 100644
--- a/drivers/scsi/scsi_debug.c
+++ b/drivers/scsi/scsi_debug.c
@@ -3450,7 +3450,7 @@ static int resp_comp_write(struct scsi_cmnd *scp,
3450 return check_condition_result; 3450 return check_condition_result;
3451 } 3451 }
3452 dnum = 2 * num; 3452 dnum = 2 * num;
3453 arr = kzalloc(dnum * lb_size, GFP_ATOMIC); 3453 arr = kcalloc(lb_size, dnum, GFP_ATOMIC);
3454 if (NULL == arr) { 3454 if (NULL == arr) {
3455 mk_sense_buffer(scp, ILLEGAL_REQUEST, INSUFF_RES_ASC, 3455 mk_sense_buffer(scp, ILLEGAL_REQUEST, INSUFF_RES_ASC,
3456 INSUFF_RES_ASCQ); 3456 INSUFF_RES_ASCQ);
@@ -5439,7 +5439,8 @@ static int __init scsi_debug_init(void)
5439 } 5439 }
5440 5440
5441 map_size = lba_to_map_index(sdebug_store_sectors - 1) + 1; 5441 map_size = lba_to_map_index(sdebug_store_sectors - 1) + 1;
5442 map_storep = vmalloc(BITS_TO_LONGS(map_size) * sizeof(long)); 5442 map_storep = vmalloc(array_size(sizeof(long),
5443 BITS_TO_LONGS(map_size)));
5443 5444
5444 pr_info("%lu provisioning blocks\n", map_size); 5445 pr_info("%lu provisioning blocks\n", map_size);
5445 5446
diff --git a/drivers/scsi/sd_zbc.c b/drivers/scsi/sd_zbc.c
index 323e3dc4bc59..76da8c3a6f09 100644
--- a/drivers/scsi/sd_zbc.c
+++ b/drivers/scsi/sd_zbc.c
@@ -494,7 +494,7 @@ out_free:
494static inline unsigned long * 494static inline unsigned long *
495sd_zbc_alloc_zone_bitmap(u32 nr_zones, int numa_node) 495sd_zbc_alloc_zone_bitmap(u32 nr_zones, int numa_node)
496{ 496{
497 return kzalloc_node(BITS_TO_LONGS(nr_zones) * sizeof(unsigned long), 497 return kcalloc_node(BITS_TO_LONGS(nr_zones), sizeof(unsigned long),
498 GFP_KERNEL, numa_node); 498 GFP_KERNEL, numa_node);
499} 499}
500 500
diff --git a/drivers/scsi/ses.c b/drivers/scsi/ses.c
index 62f04c0511cf..0fc39224ce1e 100644
--- a/drivers/scsi/ses.c
+++ b/drivers/scsi/ses.c
@@ -747,7 +747,7 @@ static int ses_intf_add(struct device *cdev,
747 buf = NULL; 747 buf = NULL;
748 } 748 }
749page2_not_supported: 749page2_not_supported:
750 scomp = kzalloc(sizeof(struct ses_component) * components, GFP_KERNEL); 750 scomp = kcalloc(components, sizeof(struct ses_component), GFP_KERNEL);
751 if (!scomp) 751 if (!scomp)
752 goto err_free; 752 goto err_free;
753 753
diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
index 573763908562..53ae52dbff84 100644
--- a/drivers/scsi/sg.c
+++ b/drivers/scsi/sg.c
@@ -1045,7 +1045,7 @@ sg_ioctl(struct file *filp, unsigned int cmd_in, unsigned long arg)
1045 else { 1045 else {
1046 sg_req_info_t *rinfo; 1046 sg_req_info_t *rinfo;
1047 1047
1048 rinfo = kzalloc(SZ_SG_REQ_INFO * SG_MAX_QUEUE, 1048 rinfo = kcalloc(SG_MAX_QUEUE, SZ_SG_REQ_INFO,
1049 GFP_KERNEL); 1049 GFP_KERNEL);
1050 if (!rinfo) 1050 if (!rinfo)
1051 return -ENOMEM; 1051 return -ENOMEM;
diff --git a/drivers/scsi/smartpqi/smartpqi_init.c b/drivers/scsi/smartpqi/smartpqi_init.c
index 592b6dbf8b35..b78d20b74ed8 100644
--- a/drivers/scsi/smartpqi/smartpqi_init.c
+++ b/drivers/scsi/smartpqi/smartpqi_init.c
@@ -1820,8 +1820,9 @@ static int pqi_update_scsi_devices(struct pqi_ctrl_info *ctrl_info)
1820 1820
1821 num_new_devices = num_physicals + num_logicals; 1821 num_new_devices = num_physicals + num_logicals;
1822 1822
1823 new_device_list = kmalloc(sizeof(*new_device_list) * 1823 new_device_list = kmalloc_array(num_new_devices,
1824 num_new_devices, GFP_KERNEL); 1824 sizeof(*new_device_list),
1825 GFP_KERNEL);
1825 if (!new_device_list) { 1826 if (!new_device_list) {
1826 dev_warn(&ctrl_info->pci_dev->dev, "%s\n", out_of_memory_msg); 1827 dev_warn(&ctrl_info->pci_dev->dev, "%s\n", out_of_memory_msg);
1827 rc = -ENOMEM; 1828 rc = -ENOMEM;
@@ -4251,8 +4252,9 @@ static int pqi_alloc_io_resources(struct pqi_ctrl_info *ctrl_info)
4251 struct device *dev; 4252 struct device *dev;
4252 struct pqi_io_request *io_request; 4253 struct pqi_io_request *io_request;
4253 4254
4254 ctrl_info->io_request_pool = kzalloc(ctrl_info->max_io_slots * 4255 ctrl_info->io_request_pool =
4255 sizeof(ctrl_info->io_request_pool[0]), GFP_KERNEL); 4256 kcalloc(ctrl_info->max_io_slots,
4257 sizeof(ctrl_info->io_request_pool[0]), GFP_KERNEL);
4256 4258
4257 if (!ctrl_info->io_request_pool) { 4259 if (!ctrl_info->io_request_pool) {
4258 dev_err(&ctrl_info->pci_dev->dev, 4260 dev_err(&ctrl_info->pci_dev->dev,
diff --git a/drivers/scsi/st.c b/drivers/scsi/st.c
index c9e27e752c25..50c66ccc4b41 100644
--- a/drivers/scsi/st.c
+++ b/drivers/scsi/st.c
@@ -3888,7 +3888,7 @@ static struct st_buffer *new_tape_buffer(int need_dma, int max_sg)
3888 tb->dma = need_dma; 3888 tb->dma = need_dma;
3889 tb->buffer_size = 0; 3889 tb->buffer_size = 0;
3890 3890
3891 tb->reserved_pages = kzalloc(max_sg * sizeof(struct page *), 3891 tb->reserved_pages = kcalloc(max_sg, sizeof(struct page *),
3892 GFP_KERNEL); 3892 GFP_KERNEL);
3893 if (!tb->reserved_pages) { 3893 if (!tb->reserved_pages) {
3894 kfree(tb); 3894 kfree(tb);
@@ -4915,7 +4915,8 @@ static int sgl_map_user_pages(struct st_buffer *STbp,
4915 if (count == 0) 4915 if (count == 0)
4916 return 0; 4916 return 0;
4917 4917
4918 if ((pages = kmalloc(max_pages * sizeof(*pages), GFP_KERNEL)) == NULL) 4918 pages = kmalloc_array(max_pages, sizeof(*pages), GFP_KERNEL);
4919 if (pages == NULL)
4919 return -ENOMEM; 4920 return -ENOMEM;
4920 4921
4921 /* Try to fault in all of the necessary pages */ 4922 /* Try to fault in all of the necessary pages */
diff --git a/drivers/scsi/ufs/ufshcd-pltfrm.c b/drivers/scsi/ufs/ufshcd-pltfrm.c
index e82bde077296..895a9b5ac989 100644
--- a/drivers/scsi/ufs/ufshcd-pltfrm.c
+++ b/drivers/scsi/ufs/ufshcd-pltfrm.c
@@ -86,8 +86,8 @@ static int ufshcd_parse_clock_info(struct ufs_hba *hba)
86 goto out; 86 goto out;
87 } 87 }
88 88
89 clkfreq = devm_kzalloc(dev, sz * sizeof(*clkfreq), 89 clkfreq = devm_kcalloc(dev, sz, sizeof(*clkfreq),
90 GFP_KERNEL); 90 GFP_KERNEL);
91 if (!clkfreq) { 91 if (!clkfreq) {
92 ret = -ENOMEM; 92 ret = -ENOMEM;
93 goto out; 93 goto out;
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index 3a811c5f70ba..397081d320b1 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -3357,8 +3357,8 @@ static int ufshcd_memory_alloc(struct ufs_hba *hba)
3357 } 3357 }
3358 3358
3359 /* Allocate memory for local reference block */ 3359 /* Allocate memory for local reference block */
3360 hba->lrb = devm_kzalloc(hba->dev, 3360 hba->lrb = devm_kcalloc(hba->dev,
3361 hba->nutrs * sizeof(struct ufshcd_lrb), 3361 hba->nutrs, sizeof(struct ufshcd_lrb),
3362 GFP_KERNEL); 3362 GFP_KERNEL);
3363 if (!hba->lrb) { 3363 if (!hba->lrb) {
3364 dev_err(hba->dev, "LRB Memory allocation failed\n"); 3364 dev_err(hba->dev, "LRB Memory allocation failed\n");
diff --git a/drivers/scsi/virtio_scsi.c b/drivers/scsi/virtio_scsi.c
index 45d04631888a..6dc8891ccb74 100644
--- a/drivers/scsi/virtio_scsi.c
+++ b/drivers/scsi/virtio_scsi.c
@@ -794,9 +794,10 @@ static int virtscsi_init(struct virtio_device *vdev,
794 struct irq_affinity desc = { .pre_vectors = 2 }; 794 struct irq_affinity desc = { .pre_vectors = 2 };
795 795
796 num_vqs = vscsi->num_queues + VIRTIO_SCSI_VQ_BASE; 796 num_vqs = vscsi->num_queues + VIRTIO_SCSI_VQ_BASE;
797 vqs = kmalloc(num_vqs * sizeof(struct virtqueue *), GFP_KERNEL); 797 vqs = kmalloc_array(num_vqs, sizeof(struct virtqueue *), GFP_KERNEL);
798 callbacks = kmalloc(num_vqs * sizeof(vq_callback_t *), GFP_KERNEL); 798 callbacks = kmalloc_array(num_vqs, sizeof(vq_callback_t *),
799 names = kmalloc(num_vqs * sizeof(char *), GFP_KERNEL); 799 GFP_KERNEL);
800 names = kmalloc_array(num_vqs, sizeof(char *), GFP_KERNEL);
800 801
801 if (!callbacks || !vqs || !names) { 802 if (!callbacks || !vqs || !names) {
802 err = -ENOMEM; 803 err = -ENOMEM;
diff --git a/drivers/sh/clk/cpg.c b/drivers/sh/clk/cpg.c
index 7442bc130055..eeb028b9cdb3 100644
--- a/drivers/sh/clk/cpg.c
+++ b/drivers/sh/clk/cpg.c
@@ -249,7 +249,7 @@ static int __init sh_clk_div_register_ops(struct clk *clks, int nr,
249 int k; 249 int k;
250 250
251 freq_table_size *= (nr_divs + 1); 251 freq_table_size *= (nr_divs + 1);
252 freq_table = kzalloc(freq_table_size * nr, GFP_KERNEL); 252 freq_table = kcalloc(nr, freq_table_size, GFP_KERNEL);
253 if (!freq_table) { 253 if (!freq_table) {
254 pr_err("%s: unable to alloc memory\n", __func__); 254 pr_err("%s: unable to alloc memory\n", __func__);
255 return -ENOMEM; 255 return -ENOMEM;
diff --git a/drivers/sh/intc/core.c b/drivers/sh/intc/core.c
index 8e72bcbd3d6d..46f0f322d4d8 100644
--- a/drivers/sh/intc/core.c
+++ b/drivers/sh/intc/core.c
@@ -203,7 +203,7 @@ int __init register_intc_controller(struct intc_desc *desc)
203 203
204 if (desc->num_resources) { 204 if (desc->num_resources) {
205 d->nr_windows = desc->num_resources; 205 d->nr_windows = desc->num_resources;
206 d->window = kzalloc(d->nr_windows * sizeof(*d->window), 206 d->window = kcalloc(d->nr_windows, sizeof(*d->window),
207 GFP_NOWAIT); 207 GFP_NOWAIT);
208 if (!d->window) 208 if (!d->window)
209 goto err1; 209 goto err1;
@@ -230,12 +230,12 @@ int __init register_intc_controller(struct intc_desc *desc)
230 d->nr_reg += hw->ack_regs ? hw->nr_ack_regs : 0; 230 d->nr_reg += hw->ack_regs ? hw->nr_ack_regs : 0;
231 d->nr_reg += hw->subgroups ? hw->nr_subgroups : 0; 231 d->nr_reg += hw->subgroups ? hw->nr_subgroups : 0;
232 232
233 d->reg = kzalloc(d->nr_reg * sizeof(*d->reg), GFP_NOWAIT); 233 d->reg = kcalloc(d->nr_reg, sizeof(*d->reg), GFP_NOWAIT);
234 if (!d->reg) 234 if (!d->reg)
235 goto err2; 235 goto err2;
236 236
237#ifdef CONFIG_SMP 237#ifdef CONFIG_SMP
238 d->smp = kzalloc(d->nr_reg * sizeof(*d->smp), GFP_NOWAIT); 238 d->smp = kcalloc(d->nr_reg, sizeof(*d->smp), GFP_NOWAIT);
239 if (!d->smp) 239 if (!d->smp)
240 goto err3; 240 goto err3;
241#endif 241#endif
@@ -253,7 +253,7 @@ int __init register_intc_controller(struct intc_desc *desc)
253 } 253 }
254 254
255 if (hw->prio_regs) { 255 if (hw->prio_regs) {
256 d->prio = kzalloc(hw->nr_vectors * sizeof(*d->prio), 256 d->prio = kcalloc(hw->nr_vectors, sizeof(*d->prio),
257 GFP_NOWAIT); 257 GFP_NOWAIT);
258 if (!d->prio) 258 if (!d->prio)
259 goto err4; 259 goto err4;
@@ -269,7 +269,7 @@ int __init register_intc_controller(struct intc_desc *desc)
269 } 269 }
270 270
271 if (hw->sense_regs) { 271 if (hw->sense_regs) {
272 d->sense = kzalloc(hw->nr_vectors * sizeof(*d->sense), 272 d->sense = kcalloc(hw->nr_vectors, sizeof(*d->sense),
273 GFP_NOWAIT); 273 GFP_NOWAIT);
274 if (!d->sense) 274 if (!d->sense)
275 goto err5; 275 goto err5;
diff --git a/drivers/sh/maple/maple.c b/drivers/sh/maple/maple.c
index 7525039d812c..2e45988d1259 100644
--- a/drivers/sh/maple/maple.c
+++ b/drivers/sh/maple/maple.c
@@ -161,7 +161,7 @@ int maple_add_packet(struct maple_device *mdev, u32 function, u32 command,
161 void *sendbuf = NULL; 161 void *sendbuf = NULL;
162 162
163 if (length) { 163 if (length) {
164 sendbuf = kzalloc(length * 4, GFP_KERNEL); 164 sendbuf = kcalloc(length, 4, GFP_KERNEL);
165 if (!sendbuf) { 165 if (!sendbuf) {
166 ret = -ENOMEM; 166 ret = -ENOMEM;
167 goto out; 167 goto out;
diff --git a/drivers/slimbus/qcom-ctrl.c b/drivers/slimbus/qcom-ctrl.c
index bb36a8fbc9b1..db1f5135846a 100644
--- a/drivers/slimbus/qcom-ctrl.c
+++ b/drivers/slimbus/qcom-ctrl.c
@@ -540,7 +540,7 @@ static int qcom_slim_probe(struct platform_device *pdev)
540 ctrl->tx.sl_sz = SLIM_MSGQ_BUF_LEN; 540 ctrl->tx.sl_sz = SLIM_MSGQ_BUF_LEN;
541 ctrl->rx.n = QCOM_RX_MSGS; 541 ctrl->rx.n = QCOM_RX_MSGS;
542 ctrl->rx.sl_sz = SLIM_MSGQ_BUF_LEN; 542 ctrl->rx.sl_sz = SLIM_MSGQ_BUF_LEN;
543 ctrl->wr_comp = kzalloc(sizeof(struct completion *) * QCOM_TX_MSGS, 543 ctrl->wr_comp = kcalloc(QCOM_TX_MSGS, sizeof(struct completion *),
544 GFP_KERNEL); 544 GFP_KERNEL);
545 if (!ctrl->wr_comp) 545 if (!ctrl->wr_comp)
546 return -ENOMEM; 546 return -ENOMEM;
diff --git a/drivers/soc/bcm/raspberrypi-power.c b/drivers/soc/bcm/raspberrypi-power.c
index f7ed1187518b..a78dfe0a2b50 100644
--- a/drivers/soc/bcm/raspberrypi-power.c
+++ b/drivers/soc/bcm/raspberrypi-power.c
@@ -165,8 +165,10 @@ static int rpi_power_probe(struct platform_device *pdev)
165 return -ENOMEM; 165 return -ENOMEM;
166 166
167 rpi_domains->xlate.domains = 167 rpi_domains->xlate.domains =
168 devm_kzalloc(dev, sizeof(*rpi_domains->xlate.domains) * 168 devm_kcalloc(dev,
169 RPI_POWER_DOMAIN_COUNT, GFP_KERNEL); 169 RPI_POWER_DOMAIN_COUNT,
170 sizeof(*rpi_domains->xlate.domains),
171 GFP_KERNEL);
170 if (!rpi_domains->xlate.domains) 172 if (!rpi_domains->xlate.domains)
171 return -ENOMEM; 173 return -ENOMEM;
172 174
diff --git a/drivers/soc/fsl/qbman/qman.c b/drivers/soc/fsl/qbman/qman.c
index ba3cfa8e279b..ecb22749df0b 100644
--- a/drivers/soc/fsl/qbman/qman.c
+++ b/drivers/soc/fsl/qbman/qman.c
@@ -1021,7 +1021,8 @@ int qman_alloc_fq_table(u32 _num_fqids)
1021{ 1021{
1022 num_fqids = _num_fqids; 1022 num_fqids = _num_fqids;
1023 1023
1024 fq_table = vzalloc(num_fqids * 2 * sizeof(struct qman_fq *)); 1024 fq_table = vzalloc(array3_size(sizeof(struct qman_fq *),
1025 num_fqids, 2));
1025 if (!fq_table) 1026 if (!fq_table)
1026 return -ENOMEM; 1027 return -ENOMEM;
1027 1028
@@ -1181,7 +1182,7 @@ static int qman_create_portal(struct qman_portal *portal,
1181 qm_dqrr_set_ithresh(p, QMAN_PIRQ_DQRR_ITHRESH); 1182 qm_dqrr_set_ithresh(p, QMAN_PIRQ_DQRR_ITHRESH);
1182 qm_mr_set_ithresh(p, QMAN_PIRQ_MR_ITHRESH); 1183 qm_mr_set_ithresh(p, QMAN_PIRQ_MR_ITHRESH);
1183 qm_out(p, QM_REG_ITPR, QMAN_PIRQ_IPERIOD); 1184 qm_out(p, QM_REG_ITPR, QMAN_PIRQ_IPERIOD);
1184 portal->cgrs = kmalloc(2 * sizeof(*cgrs), GFP_KERNEL); 1185 portal->cgrs = kmalloc_array(2, sizeof(*cgrs), GFP_KERNEL);
1185 if (!portal->cgrs) 1186 if (!portal->cgrs)
1186 goto fail_cgrs; 1187 goto fail_cgrs;
1187 /* initial snapshot is no-depletion */ 1188 /* initial snapshot is no-depletion */
diff --git a/drivers/soc/mediatek/mtk-scpsys.c b/drivers/soc/mediatek/mtk-scpsys.c
index 128e3dd3186d..5b24bb4bfbf6 100644
--- a/drivers/soc/mediatek/mtk-scpsys.c
+++ b/drivers/soc/mediatek/mtk-scpsys.c
@@ -376,15 +376,15 @@ static struct scp *init_scp(struct platform_device *pdev,
376 if (IS_ERR(scp->base)) 376 if (IS_ERR(scp->base))
377 return ERR_CAST(scp->base); 377 return ERR_CAST(scp->base);
378 378
379 scp->domains = devm_kzalloc(&pdev->dev, 379 scp->domains = devm_kcalloc(&pdev->dev,
380 sizeof(*scp->domains) * num, GFP_KERNEL); 380 num, sizeof(*scp->domains), GFP_KERNEL);
381 if (!scp->domains) 381 if (!scp->domains)
382 return ERR_PTR(-ENOMEM); 382 return ERR_PTR(-ENOMEM);
383 383
384 pd_data = &scp->pd_data; 384 pd_data = &scp->pd_data;
385 385
386 pd_data->domains = devm_kzalloc(&pdev->dev, 386 pd_data->domains = devm_kcalloc(&pdev->dev,
387 sizeof(*pd_data->domains) * num, GFP_KERNEL); 387 num, sizeof(*pd_data->domains), GFP_KERNEL);
388 if (!pd_data->domains) 388 if (!pd_data->domains)
389 return ERR_PTR(-ENOMEM); 389 return ERR_PTR(-ENOMEM);
390 390
diff --git a/drivers/soc/ti/knav_qmss_acc.c b/drivers/soc/ti/knav_qmss_acc.c
index 3d7225f4e77f..316e82e46f6c 100644
--- a/drivers/soc/ti/knav_qmss_acc.c
+++ b/drivers/soc/ti/knav_qmss_acc.c
@@ -405,8 +405,8 @@ static int knav_acc_init_queue(struct knav_range_info *range,
405{ 405{
406 unsigned id = kq->id - range->queue_base; 406 unsigned id = kq->id - range->queue_base;
407 407
408 kq->descs = devm_kzalloc(range->kdev->dev, 408 kq->descs = devm_kcalloc(range->kdev->dev,
409 ACC_DESCS_MAX * sizeof(u32), GFP_KERNEL); 409 ACC_DESCS_MAX, sizeof(u32), GFP_KERNEL);
410 if (!kq->descs) 410 if (!kq->descs)
411 return -ENOMEM; 411 return -ENOMEM;
412 412
@@ -552,7 +552,7 @@ int knav_init_acc_range(struct knav_device *kdev,
552 info->list_size = list_size; 552 info->list_size = list_size;
553 mem_size = PAGE_ALIGN(list_size * 2); 553 mem_size = PAGE_ALIGN(list_size * 2);
554 info->mem_size = mem_size; 554 info->mem_size = mem_size;
555 range->acc = devm_kzalloc(kdev->dev, channels * sizeof(*range->acc), 555 range->acc = devm_kcalloc(kdev->dev, channels, sizeof(*range->acc),
556 GFP_KERNEL); 556 GFP_KERNEL);
557 if (!range->acc) 557 if (!range->acc)
558 return -ENOMEM; 558 return -ENOMEM;
diff --git a/drivers/spi/spi-davinci.c b/drivers/spi/spi-davinci.c
index 60d59b003aa4..577084bb911b 100644
--- a/drivers/spi/spi-davinci.c
+++ b/drivers/spi/spi-davinci.c
@@ -923,9 +923,10 @@ static int davinci_spi_probe(struct platform_device *pdev)
923 /* pdata in dspi is now updated and point pdata to that */ 923 /* pdata in dspi is now updated and point pdata to that */
924 pdata = &dspi->pdata; 924 pdata = &dspi->pdata;
925 925
926 dspi->bytes_per_word = devm_kzalloc(&pdev->dev, 926 dspi->bytes_per_word = devm_kcalloc(&pdev->dev,
927 sizeof(*dspi->bytes_per_word) * 927 pdata->num_chipselect,
928 pdata->num_chipselect, GFP_KERNEL); 928 sizeof(*dspi->bytes_per_word),
929 GFP_KERNEL);
929 if (dspi->bytes_per_word == NULL) { 930 if (dspi->bytes_per_word == NULL) {
930 ret = -ENOMEM; 931 ret = -ENOMEM;
931 goto free_master; 932 goto free_master;
diff --git a/drivers/spi/spi-ep93xx.c b/drivers/spi/spi-ep93xx.c
index e5cc07357746..f1526757aaf6 100644
--- a/drivers/spi/spi-ep93xx.c
+++ b/drivers/spi/spi-ep93xx.c
@@ -671,8 +671,8 @@ static int ep93xx_spi_probe(struct platform_device *pdev)
671 master->bits_per_word_mask = SPI_BPW_RANGE_MASK(4, 16); 671 master->bits_per_word_mask = SPI_BPW_RANGE_MASK(4, 16);
672 672
673 master->num_chipselect = info->num_chipselect; 673 master->num_chipselect = info->num_chipselect;
674 master->cs_gpios = devm_kzalloc(&master->dev, 674 master->cs_gpios = devm_kcalloc(&master->dev,
675 sizeof(int) * master->num_chipselect, 675 master->num_chipselect, sizeof(int),
676 GFP_KERNEL); 676 GFP_KERNEL);
677 if (!master->cs_gpios) { 677 if (!master->cs_gpios) {
678 error = -ENOMEM; 678 error = -ENOMEM;
diff --git a/drivers/spi/spi-gpio.c b/drivers/spi/spi-gpio.c
index b85a93cad44a..6ae92d4dca19 100644
--- a/drivers/spi/spi-gpio.c
+++ b/drivers/spi/spi-gpio.c
@@ -373,8 +373,9 @@ static int spi_gpio_probe(struct platform_device *pdev)
373 373
374 spi_gpio = spi_master_get_devdata(master); 374 spi_gpio = spi_master_get_devdata(master);
375 375
376 spi_gpio->cs_gpios = devm_kzalloc(&pdev->dev, 376 spi_gpio->cs_gpios = devm_kcalloc(&pdev->dev,
377 pdata->num_chipselect * sizeof(*spi_gpio->cs_gpios), 377 pdata->num_chipselect,
378 sizeof(*spi_gpio->cs_gpios),
378 GFP_KERNEL); 379 GFP_KERNEL);
379 if (!spi_gpio->cs_gpios) 380 if (!spi_gpio->cs_gpios)
380 return -ENOMEM; 381 return -ENOMEM;
diff --git a/drivers/spi/spi-imx.c b/drivers/spi/spi-imx.c
index 866246f21041..d3b21faf6b1f 100644
--- a/drivers/spi/spi-imx.c
+++ b/drivers/spi/spi-imx.c
@@ -1511,8 +1511,9 @@ static int spi_imx_probe(struct platform_device *pdev)
1511 if (mxc_platform_info) { 1511 if (mxc_platform_info) {
1512 master->num_chipselect = mxc_platform_info->num_chipselect; 1512 master->num_chipselect = mxc_platform_info->num_chipselect;
1513 if (mxc_platform_info->chipselect) { 1513 if (mxc_platform_info->chipselect) {
1514 master->cs_gpios = devm_kzalloc(&master->dev, 1514 master->cs_gpios = devm_kcalloc(&master->dev,
1515 sizeof(int) * master->num_chipselect, GFP_KERNEL); 1515 master->num_chipselect, sizeof(int),
1516 GFP_KERNEL);
1516 if (!master->cs_gpios) 1517 if (!master->cs_gpios)
1517 return -ENOMEM; 1518 return -ENOMEM;
1518 1519
diff --git a/drivers/spi/spi-oc-tiny.c b/drivers/spi/spi-oc-tiny.c
index b5911282a611..085f580be7ec 100644
--- a/drivers/spi/spi-oc-tiny.c
+++ b/drivers/spi/spi-oc-tiny.c
@@ -213,8 +213,8 @@ static int tiny_spi_of_probe(struct platform_device *pdev)
213 return 0; 213 return 0;
214 hw->gpio_cs_count = of_gpio_count(np); 214 hw->gpio_cs_count = of_gpio_count(np);
215 if (hw->gpio_cs_count > 0) { 215 if (hw->gpio_cs_count > 0) {
216 hw->gpio_cs = devm_kzalloc(&pdev->dev, 216 hw->gpio_cs = devm_kcalloc(&pdev->dev,
217 hw->gpio_cs_count * sizeof(unsigned int), 217 hw->gpio_cs_count, sizeof(unsigned int),
218 GFP_KERNEL); 218 GFP_KERNEL);
219 if (!hw->gpio_cs) 219 if (!hw->gpio_cs)
220 return -ENOMEM; 220 return -ENOMEM;
diff --git a/drivers/spi/spi-pl022.c b/drivers/spi/spi-pl022.c
index 4797c57f4263..1af8c96b940e 100644
--- a/drivers/spi/spi-pl022.c
+++ b/drivers/spi/spi-pl022.c
@@ -2135,7 +2135,7 @@ static int pl022_probe(struct amba_device *adev, const struct amba_id *id)
2135 pl022->master_info = platform_info; 2135 pl022->master_info = platform_info;
2136 pl022->adev = adev; 2136 pl022->adev = adev;
2137 pl022->vendor = id->data; 2137 pl022->vendor = id->data;
2138 pl022->chipselects = devm_kzalloc(dev, num_cs * sizeof(int), 2138 pl022->chipselects = devm_kcalloc(dev, num_cs, sizeof(int),
2139 GFP_KERNEL); 2139 GFP_KERNEL);
2140 if (!pl022->chipselects) { 2140 if (!pl022->chipselects) {
2141 status = -ENOMEM; 2141 status = -ENOMEM;
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
index efc624f9e490..ec395a6baf9c 100644
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -2049,7 +2049,7 @@ static int of_spi_register_master(struct spi_controller *ctlr)
2049 else if (nb < 0) 2049 else if (nb < 0)
2050 return nb; 2050 return nb;
2051 2051
2052 cs = devm_kzalloc(&ctlr->dev, sizeof(int) * ctlr->num_chipselect, 2052 cs = devm_kcalloc(&ctlr->dev, ctlr->num_chipselect, sizeof(int),
2053 GFP_KERNEL); 2053 GFP_KERNEL);
2054 ctlr->cs_gpios = cs; 2054 ctlr->cs_gpios = cs;
2055 2055
diff --git a/drivers/staging/android/ion/ion_heap.c b/drivers/staging/android/ion/ion_heap.c
index 772dad65396e..e8c440329708 100644
--- a/drivers/staging/android/ion/ion_heap.c
+++ b/drivers/staging/android/ion/ion_heap.c
@@ -25,7 +25,8 @@ void *ion_heap_map_kernel(struct ion_heap *heap,
25 pgprot_t pgprot; 25 pgprot_t pgprot;
26 struct sg_table *table = buffer->sg_table; 26 struct sg_table *table = buffer->sg_table;
27 int npages = PAGE_ALIGN(buffer->size) / PAGE_SIZE; 27 int npages = PAGE_ALIGN(buffer->size) / PAGE_SIZE;
28 struct page **pages = vmalloc(sizeof(struct page *) * npages); 28 struct page **pages = vmalloc(array_size(npages,
29 sizeof(struct page *)));
29 struct page **tmp = pages; 30 struct page **tmp = pages;
30 31
31 if (!pages) 32 if (!pages)
diff --git a/drivers/staging/greybus/audio_topology.c b/drivers/staging/greybus/audio_topology.c
index 15e57f701630..b71078339e86 100644
--- a/drivers/staging/greybus/audio_topology.c
+++ b/drivers/staging/greybus/audio_topology.c
@@ -144,7 +144,7 @@ static const char **gb_generate_enum_strings(struct gbaudio_module_info *gb,
144 __u8 *data; 144 __u8 *data;
145 145
146 items = le32_to_cpu(gbenum->items); 146 items = le32_to_cpu(gbenum->items);
147 strings = devm_kzalloc(gb->dev, sizeof(char *) * items, GFP_KERNEL); 147 strings = devm_kcalloc(gb->dev, items, sizeof(char *), GFP_KERNEL);
148 data = gbenum->names; 148 data = gbenum->names;
149 149
150 for (i = 0; i < items; i++) { 150 for (i = 0; i < items; i++) {
diff --git a/drivers/staging/greybus/camera.c b/drivers/staging/greybus/camera.c
index 341f729a9779..6dded10f4155 100644
--- a/drivers/staging/greybus/camera.c
+++ b/drivers/staging/greybus/camera.c
@@ -1175,8 +1175,9 @@ static int gb_camera_debugfs_init(struct gb_camera *gcam)
1175 1175
1176 gcam->debugfs.root = debugfs_create_dir(dirname, gb_debugfs_get()); 1176 gcam->debugfs.root = debugfs_create_dir(dirname, gb_debugfs_get());
1177 1177
1178 gcam->debugfs.buffers = vmalloc(sizeof(*gcam->debugfs.buffers) * 1178 gcam->debugfs.buffers =
1179 GB_CAMERA_DEBUGFS_BUFFER_MAX); 1179 vmalloc(array_size(GB_CAMERA_DEBUGFS_BUFFER_MAX,
1180 sizeof(*gcam->debugfs.buffers)));
1180 if (!gcam->debugfs.buffers) 1181 if (!gcam->debugfs.buffers)
1181 return -ENOMEM; 1182 return -ENOMEM;
1182 1183
diff --git a/drivers/staging/media/imx/imx-media-dev.c b/drivers/staging/media/imx/imx-media-dev.c
index 289d775c4820..b0be80f05767 100644
--- a/drivers/staging/media/imx/imx-media-dev.c
+++ b/drivers/staging/media/imx/imx-media-dev.c
@@ -303,9 +303,9 @@ static int imx_media_alloc_pad_vdev_lists(struct imx_media_dev *imxmd)
303 303
304 list_for_each_entry(sd, &imxmd->v4l2_dev.subdevs, list) { 304 list_for_each_entry(sd, &imxmd->v4l2_dev.subdevs, list) {
305 entity = &sd->entity; 305 entity = &sd->entity;
306 vdev_lists = devm_kzalloc( 306 vdev_lists = devm_kcalloc(
307 imxmd->md.dev, 307 imxmd->md.dev,
308 entity->num_pads * sizeof(*vdev_lists), 308 entity->num_pads, sizeof(*vdev_lists),
309 GFP_KERNEL); 309 GFP_KERNEL);
310 if (!vdev_lists) 310 if (!vdev_lists)
311 return -ENOMEM; 311 return -ENOMEM;
@@ -544,7 +544,7 @@ static int imx_media_probe(struct platform_device *pdev)
544 goto unreg_dev; 544 goto unreg_dev;
545 } 545 }
546 546
547 subdevs = devm_kzalloc(imxmd->md.dev, sizeof(*subdevs) * num_subdevs, 547 subdevs = devm_kcalloc(imxmd->md.dev, num_subdevs, sizeof(*subdevs),
548 GFP_KERNEL); 548 GFP_KERNEL);
549 if (!subdevs) { 549 if (!subdevs) {
550 ret = -ENOMEM; 550 ret = -ENOMEM;
diff --git a/drivers/staging/media/zoran/zoran_driver.c b/drivers/staging/media/zoran/zoran_driver.c
index d2e13fffbc6b..d7842224fff6 100644
--- a/drivers/staging/media/zoran/zoran_driver.c
+++ b/drivers/staging/media/zoran/zoran_driver.c
@@ -941,7 +941,7 @@ static int zoran_open(struct file *file)
941 /* used to be BUZ_MAX_WIDTH/HEIGHT, but that gives overflows 941 /* used to be BUZ_MAX_WIDTH/HEIGHT, but that gives overflows
942 * on norm-change! */ 942 * on norm-change! */
943 fh->overlay_mask = 943 fh->overlay_mask =
944 kmalloc(((768 + 31) / 32) * 576 * 4, GFP_KERNEL); 944 kmalloc(array3_size((768 + 31) / 32, 576, 4), GFP_KERNEL);
945 if (!fh->overlay_mask) { 945 if (!fh->overlay_mask) {
946 dprintk(1, 946 dprintk(1,
947 KERN_ERR 947 KERN_ERR
@@ -1220,7 +1220,8 @@ static int setup_window(struct zoran_fh *fh,
1220 } 1220 }
1221 } else if (clipcount) { 1221 } else if (clipcount) {
1222 /* write our own bitmap from the clips */ 1222 /* write our own bitmap from the clips */
1223 vcp = vmalloc(sizeof(struct v4l2_clip) * (clipcount + 4)); 1223 vcp = vmalloc(array_size(sizeof(struct v4l2_clip),
1224 clipcount + 4));
1224 if (vcp == NULL) { 1225 if (vcp == NULL) {
1225 dprintk(1, 1226 dprintk(1,
1226 KERN_ERR 1227 KERN_ERR
diff --git a/drivers/staging/mt7621-pinctrl/pinctrl-rt2880.c b/drivers/staging/mt7621-pinctrl/pinctrl-rt2880.c
index 2d9ab2620b82..0c3e498ae99c 100644
--- a/drivers/staging/mt7621-pinctrl/pinctrl-rt2880.c
+++ b/drivers/staging/mt7621-pinctrl/pinctrl-rt2880.c
@@ -143,7 +143,7 @@ static int rt2880_pinctrl_dt_node_to_map(struct pinctrl_dev *pctrldev,
143 if (!max_maps) 143 if (!max_maps)
144 return max_maps; 144 return max_maps;
145 145
146 *map = kzalloc(max_maps * sizeof(struct pinctrl_map), GFP_KERNEL); 146 *map = kcalloc(max_maps, sizeof(struct pinctrl_map), GFP_KERNEL);
147 if (!*map) 147 if (!*map)
148 return -ENOMEM; 148 return -ENOMEM;
149 149
@@ -287,7 +287,8 @@ static int rt2880_pinmux_index(struct rt2880_priv *p)
287 } 287 }
288 288
289 /* allocate the group names array needed by the gpio function */ 289 /* allocate the group names array needed by the gpio function */
290 p->group_names = devm_kzalloc(p->dev, sizeof(char *) * p->group_count, GFP_KERNEL); 290 p->group_names = devm_kcalloc(p->dev, p->group_count, sizeof(char *),
291 GFP_KERNEL);
291 if (!p->group_names) 292 if (!p->group_names)
292 return -1; 293 return -1;
293 294
@@ -300,8 +301,12 @@ static int rt2880_pinmux_index(struct rt2880_priv *p)
300 p->func_count++; 301 p->func_count++;
301 302
302 /* allocate our function and group mapping index buffers */ 303 /* allocate our function and group mapping index buffers */
303 f = p->func = devm_kzalloc(p->dev, sizeof(struct rt2880_pmx_func) * p->func_count, GFP_KERNEL); 304 f = p->func = devm_kcalloc(p->dev,
304 gpio_func.groups = devm_kzalloc(p->dev, sizeof(int) * p->group_count, GFP_KERNEL); 305 p->func_count,
306 sizeof(struct rt2880_pmx_func),
307 GFP_KERNEL);
308 gpio_func.groups = devm_kcalloc(p->dev, p->group_count, sizeof(int),
309 GFP_KERNEL);
305 if (!f || !gpio_func.groups) 310 if (!f || !gpio_func.groups)
306 return -1; 311 return -1;
307 312
@@ -337,7 +342,10 @@ static int rt2880_pinmux_pins(struct rt2880_priv *p)
337 if (!p->func[i]->pin_count) 342 if (!p->func[i]->pin_count)
338 continue; 343 continue;
339 344
340 p->func[i]->pins = devm_kzalloc(p->dev, sizeof(int) * p->func[i]->pin_count, GFP_KERNEL); 345 p->func[i]->pins = devm_kcalloc(p->dev,
346 p->func[i]->pin_count,
347 sizeof(int),
348 GFP_KERNEL);
341 for (j = 0; j < p->func[i]->pin_count; j++) 349 for (j = 0; j < p->func[i]->pin_count; j++)
342 p->func[i]->pins[j] = p->func[i]->pin_first + j; 350 p->func[i]->pins[j] = p->func[i]->pin_first + j;
343 351
@@ -347,11 +355,11 @@ static int rt2880_pinmux_pins(struct rt2880_priv *p)
347 } 355 }
348 356
349 /* the buffer that tells us which pins are gpio */ 357 /* the buffer that tells us which pins are gpio */
350 p->gpio = devm_kzalloc(p->dev,sizeof(uint8_t) * p->max_pins, 358 p->gpio = devm_kcalloc(p->dev,p->max_pins, sizeof(uint8_t),
351 GFP_KERNEL); 359 GFP_KERNEL);
352 /* the pads needed to tell pinctrl about our pins */ 360 /* the pads needed to tell pinctrl about our pins */
353 p->pads = devm_kzalloc(p->dev, 361 p->pads = devm_kcalloc(p->dev,
354 sizeof(struct pinctrl_pin_desc) * p->max_pins, 362 p->max_pins, sizeof(struct pinctrl_pin_desc),
355 GFP_KERNEL); 363 GFP_KERNEL);
356 if (!p->pads || !p->gpio ) { 364 if (!p->pads || !p->gpio ) {
357 dev_err(p->dev, "Failed to allocate gpio data\n"); 365 dev_err(p->dev, "Failed to allocate gpio data\n");
diff --git a/drivers/staging/rtl8188eu/core/rtw_mlme.c b/drivers/staging/rtl8188eu/core/rtw_mlme.c
index 24e92998a30c..50e7cae32f75 100644
--- a/drivers/staging/rtl8188eu/core/rtw_mlme.c
+++ b/drivers/staging/rtl8188eu/core/rtw_mlme.c
@@ -53,7 +53,7 @@ int rtw_init_mlme_priv(struct adapter *padapter)
53 53
54 memset(&pmlmepriv->assoc_ssid, 0, sizeof(struct ndis_802_11_ssid)); 54 memset(&pmlmepriv->assoc_ssid, 0, sizeof(struct ndis_802_11_ssid));
55 55
56 pbuf = vzalloc(MAX_BSS_CNT * (sizeof(struct wlan_network))); 56 pbuf = vzalloc(array_size(MAX_BSS_CNT, sizeof(struct wlan_network)));
57 57
58 if (!pbuf) { 58 if (!pbuf) {
59 res = _FAIL; 59 res = _FAIL;
diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c
index 37a610d05ad2..f2cdcc2bcab4 100644
--- a/drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c
+++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c
@@ -597,8 +597,9 @@ static void RxReorderIndicatePacket(struct ieee80211_device *ieee,
597 bool bMatchWinStart = false, bPktInBuf = false; 597 bool bMatchWinStart = false, bPktInBuf = false;
598 IEEE80211_DEBUG(IEEE80211_DL_REORDER,"%s(): Seq is %d,pTS->RxIndicateSeq is %d, WinSize is %d\n",__func__,SeqNum,pTS->RxIndicateSeq,WinSize); 598 IEEE80211_DEBUG(IEEE80211_DL_REORDER,"%s(): Seq is %d,pTS->RxIndicateSeq is %d, WinSize is %d\n",__func__,SeqNum,pTS->RxIndicateSeq,WinSize);
599 599
600 prxbIndicateArray = kmalloc(sizeof(struct ieee80211_rxb *) * 600 prxbIndicateArray = kmalloc_array(REORDER_WIN_SIZE,
601 REORDER_WIN_SIZE, GFP_KERNEL); 601 sizeof(struct ieee80211_rxb *),
602 GFP_KERNEL);
602 if (!prxbIndicateArray) 603 if (!prxbIndicateArray)
603 return; 604 return;
604 605
diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c
index a4df95cc7f60..8b17400f6c13 100644
--- a/drivers/staging/rtl8192u/r8192U_core.c
+++ b/drivers/staging/rtl8192u/r8192U_core.c
@@ -1640,8 +1640,8 @@ static short rtl8192_usb_initendpoints(struct net_device *dev)
1640{ 1640{
1641 struct r8192_priv *priv = ieee80211_priv(dev); 1641 struct r8192_priv *priv = ieee80211_priv(dev);
1642 1642
1643 priv->rx_urb = kmalloc(sizeof(struct urb *) * (MAX_RX_URB + 1), 1643 priv->rx_urb = kmalloc_array(MAX_RX_URB + 1, sizeof(struct urb *),
1644 GFP_KERNEL); 1644 GFP_KERNEL);
1645 if (!priv->rx_urb) 1645 if (!priv->rx_urb)
1646 return -ENOMEM; 1646 return -ENOMEM;
1647 1647
diff --git a/drivers/staging/rtl8723bs/core/rtw_mlme.c b/drivers/staging/rtl8723bs/core/rtw_mlme.c
index cc4f115e082c..f9392b8db49b 100644
--- a/drivers/staging/rtl8723bs/core/rtw_mlme.c
+++ b/drivers/staging/rtl8723bs/core/rtw_mlme.c
@@ -37,7 +37,7 @@ sint _rtw_init_mlme_priv(struct adapter *padapter)
37 37
38 memset(&pmlmepriv->assoc_ssid, 0, sizeof(struct ndis_802_11_ssid)); 38 memset(&pmlmepriv->assoc_ssid, 0, sizeof(struct ndis_802_11_ssid));
39 39
40 pbuf = vzalloc(MAX_BSS_CNT * (sizeof(struct wlan_network))); 40 pbuf = vzalloc(array_size(MAX_BSS_CNT, sizeof(struct wlan_network)));
41 41
42 if (pbuf == NULL) { 42 if (pbuf == NULL) {
43 res = _FAIL; 43 res = _FAIL;
diff --git a/drivers/staging/rtlwifi/efuse.c b/drivers/staging/rtlwifi/efuse.c
index d7c7d146a84d..1dc71455f270 100644
--- a/drivers/staging/rtlwifi/efuse.c
+++ b/drivers/staging/rtlwifi/efuse.c
@@ -237,8 +237,8 @@ void read_efuse(struct ieee80211_hw *hw, u16 _offset, u16 _size_byte, u8 *pbuf)
237 } 237 }
238 238
239 /* allocate memory for efuse_tbl and efuse_word */ 239 /* allocate memory for efuse_tbl and efuse_word */
240 efuse_tbl = kzalloc(rtlpriv->cfg->maps[EFUSE_HWSET_MAX_SIZE] * 240 efuse_tbl = kzalloc(rtlpriv->cfg->maps[EFUSE_HWSET_MAX_SIZE],
241 sizeof(u8), GFP_ATOMIC); 241 GFP_ATOMIC);
242 if (!efuse_tbl) 242 if (!efuse_tbl)
243 return; 243 return;
244 efuse_word = kcalloc(EFUSE_MAX_WORD_UNIT, sizeof(u16 *), GFP_ATOMIC); 244 efuse_word = kcalloc(EFUSE_MAX_WORD_UNIT, sizeof(u16 *), GFP_ATOMIC);
diff --git a/drivers/staging/rts5208/ms.c b/drivers/staging/rts5208/ms.c
index 821256b95e22..b89ef15e3c20 100644
--- a/drivers/staging/rts5208/ms.c
+++ b/drivers/staging/rts5208/ms.c
@@ -2618,7 +2618,7 @@ static int ms_build_l2p_tbl(struct rtsx_chip *chip, int seg_no)
2618 segment = &ms_card->segment[seg_no]; 2618 segment = &ms_card->segment[seg_no];
2619 2619
2620 if (!segment->l2p_table) { 2620 if (!segment->l2p_table) {
2621 segment->l2p_table = vmalloc(table_size * 2); 2621 segment->l2p_table = vmalloc(array_size(table_size, 2));
2622 if (!segment->l2p_table) { 2622 if (!segment->l2p_table) {
2623 rtsx_trace(chip); 2623 rtsx_trace(chip);
2624 goto BUILD_FAIL; 2624 goto BUILD_FAIL;
diff --git a/drivers/staging/rts5208/rtsx_chip.c b/drivers/staging/rts5208/rtsx_chip.c
index 4ad472dd9daf..8a823466ca2b 100644
--- a/drivers/staging/rts5208/rtsx_chip.c
+++ b/drivers/staging/rts5208/rtsx_chip.c
@@ -1660,13 +1660,13 @@ int rtsx_write_cfg_seq(struct rtsx_chip *chip, u8 func, u16 addr, u8 *buf,
1660 1660
1661 dev_dbg(rtsx_dev(chip), "dw_len = %d\n", dw_len); 1661 dev_dbg(rtsx_dev(chip), "dw_len = %d\n", dw_len);
1662 1662
1663 data = vzalloc(dw_len * 4); 1663 data = vzalloc(array_size(dw_len, 4));
1664 if (!data) { 1664 if (!data) {
1665 rtsx_trace(chip); 1665 rtsx_trace(chip);
1666 return STATUS_NOMEM; 1666 return STATUS_NOMEM;
1667 } 1667 }
1668 1668
1669 mask = vzalloc(dw_len * 4); 1669 mask = vzalloc(array_size(dw_len, 4));
1670 if (!mask) { 1670 if (!mask) {
1671 vfree(data); 1671 vfree(data);
1672 rtsx_trace(chip); 1672 rtsx_trace(chip);
@@ -1721,7 +1721,7 @@ int rtsx_read_cfg_seq(struct rtsx_chip *chip, u8 func, u16 addr, u8 *buf,
1721 1721
1722 dev_dbg(rtsx_dev(chip), "dw_len = %d\n", dw_len); 1722 dev_dbg(rtsx_dev(chip), "dw_len = %d\n", dw_len);
1723 1723
1724 data = vmalloc(dw_len * 4); 1724 data = vmalloc(array_size(dw_len, 4));
1725 if (!data) { 1725 if (!data) {
1726 rtsx_trace(chip); 1726 rtsx_trace(chip);
1727 return STATUS_NOMEM; 1727 return STATUS_NOMEM;
diff --git a/drivers/staging/unisys/visorhba/visorhba_main.c b/drivers/staging/unisys/visorhba/visorhba_main.c
index 167e98f8688e..4fc521c51c0e 100644
--- a/drivers/staging/unisys/visorhba/visorhba_main.c
+++ b/drivers/staging/unisys/visorhba/visorhba_main.c
@@ -865,7 +865,7 @@ static void do_scsi_nolinuxstat(struct uiscmdrsp *cmdrsp,
865 if (cmdrsp->scsi.no_disk_result == 0) 865 if (cmdrsp->scsi.no_disk_result == 0)
866 return; 866 return;
867 867
868 buf = kzalloc(sizeof(char) * 36, GFP_KERNEL); 868 buf = kzalloc(36, GFP_KERNEL);
869 if (!buf) 869 if (!buf)
870 return; 870 return;
871 871
diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c
index f0e8f0f4ccb4..ee5081ba5313 100644
--- a/drivers/target/target_core_transport.c
+++ b/drivers/target/target_core_transport.c
@@ -250,10 +250,10 @@ int transport_alloc_session_tags(struct se_session *se_sess,
250{ 250{
251 int rc; 251 int rc;
252 252
253 se_sess->sess_cmd_map = kzalloc(tag_num * tag_size, 253 se_sess->sess_cmd_map = kcalloc(tag_size, tag_num,
254 GFP_KERNEL | __GFP_NOWARN | __GFP_RETRY_MAYFAIL); 254 GFP_KERNEL | __GFP_NOWARN | __GFP_RETRY_MAYFAIL);
255 if (!se_sess->sess_cmd_map) { 255 if (!se_sess->sess_cmd_map) {
256 se_sess->sess_cmd_map = vzalloc(tag_num * tag_size); 256 se_sess->sess_cmd_map = vzalloc(array_size(tag_size, tag_num));
257 if (!se_sess->sess_cmd_map) { 257 if (!se_sess->sess_cmd_map) {
258 pr_err("Unable to allocate se_sess->sess_cmd_map\n"); 258 pr_err("Unable to allocate se_sess->sess_cmd_map\n");
259 return -ENOMEM; 259 return -ENOMEM;
diff --git a/drivers/target/target_core_user.c b/drivers/target/target_core_user.c
index 94b183efd236..7f96dfa32b9c 100644
--- a/drivers/target/target_core_user.c
+++ b/drivers/target/target_core_user.c
@@ -1717,8 +1717,9 @@ static int tcmu_configure_device(struct se_device *dev)
1717 1717
1718 info = &udev->uio_info; 1718 info = &udev->uio_info;
1719 1719
1720 udev->data_bitmap = kzalloc(BITS_TO_LONGS(udev->max_blocks) * 1720 udev->data_bitmap = kcalloc(BITS_TO_LONGS(udev->max_blocks),
1721 sizeof(unsigned long), GFP_KERNEL); 1721 sizeof(unsigned long),
1722 GFP_KERNEL);
1722 if (!udev->data_bitmap) { 1723 if (!udev->data_bitmap) {
1723 ret = -ENOMEM; 1724 ret = -ENOMEM;
1724 goto err_bitmap_alloc; 1725 goto err_bitmap_alloc;
diff --git a/drivers/thermal/int340x_thermal/acpi_thermal_rel.c b/drivers/thermal/int340x_thermal/acpi_thermal_rel.c
index c719167e9f28..45e7e5cbdffb 100644
--- a/drivers/thermal/int340x_thermal/acpi_thermal_rel.c
+++ b/drivers/thermal/int340x_thermal/acpi_thermal_rel.c
@@ -96,7 +96,7 @@ int acpi_parse_trt(acpi_handle handle, int *trt_count, struct trt **trtp,
96 } 96 }
97 97
98 *trt_count = p->package.count; 98 *trt_count = p->package.count;
99 trts = kzalloc(*trt_count * sizeof(struct trt), GFP_KERNEL); 99 trts = kcalloc(*trt_count, sizeof(struct trt), GFP_KERNEL);
100 if (!trts) { 100 if (!trts) {
101 result = -ENOMEM; 101 result = -ENOMEM;
102 goto end; 102 goto end;
@@ -178,7 +178,7 @@ int acpi_parse_art(acpi_handle handle, int *art_count, struct art **artp,
178 178
179 /* ignore p->package.elements[0], as this is _ART Revision field */ 179 /* ignore p->package.elements[0], as this is _ART Revision field */
180 *art_count = p->package.count - 1; 180 *art_count = p->package.count - 1;
181 arts = kzalloc(*art_count * sizeof(struct art), GFP_KERNEL); 181 arts = kcalloc(*art_count, sizeof(struct art), GFP_KERNEL);
182 if (!arts) { 182 if (!arts) {
183 result = -ENOMEM; 183 result = -ENOMEM;
184 goto end; 184 goto end;
diff --git a/drivers/thermal/int340x_thermal/int340x_thermal_zone.c b/drivers/thermal/int340x_thermal/int340x_thermal_zone.c
index dfdf6dbc2ddc..9ec27ac1856b 100644
--- a/drivers/thermal/int340x_thermal/int340x_thermal_zone.c
+++ b/drivers/thermal/int340x_thermal/int340x_thermal_zone.c
@@ -239,9 +239,10 @@ struct int34x_thermal_zone *int340x_thermal_zone_add(struct acpi_device *adev,
239 if (ACPI_FAILURE(status)) 239 if (ACPI_FAILURE(status))
240 trip_cnt = 0; 240 trip_cnt = 0;
241 else { 241 else {
242 int34x_thermal_zone->aux_trips = kzalloc( 242 int34x_thermal_zone->aux_trips =
243 sizeof(*int34x_thermal_zone->aux_trips) * 243 kcalloc(trip_cnt,
244 trip_cnt, GFP_KERNEL); 244 sizeof(*int34x_thermal_zone->aux_trips),
245 GFP_KERNEL);
245 if (!int34x_thermal_zone->aux_trips) { 246 if (!int34x_thermal_zone->aux_trips) {
246 ret = -ENOMEM; 247 ret = -ENOMEM;
247 goto err_trip_alloc; 248 goto err_trip_alloc;
diff --git a/drivers/thermal/of-thermal.c b/drivers/thermal/of-thermal.c
index eea2fce82bf7..977a8307fbb1 100644
--- a/drivers/thermal/of-thermal.c
+++ b/drivers/thermal/of-thermal.c
@@ -853,7 +853,7 @@ __init *thermal_of_build_thermal_zone(struct device_node *np)
853 if (tz->ntrips == 0) /* must have at least one child */ 853 if (tz->ntrips == 0) /* must have at least one child */
854 goto finish; 854 goto finish;
855 855
856 tz->trips = kzalloc(tz->ntrips * sizeof(*tz->trips), GFP_KERNEL); 856 tz->trips = kcalloc(tz->ntrips, sizeof(*tz->trips), GFP_KERNEL);
857 if (!tz->trips) { 857 if (!tz->trips) {
858 ret = -ENOMEM; 858 ret = -ENOMEM;
859 goto free_tz; 859 goto free_tz;
@@ -879,7 +879,7 @@ __init *thermal_of_build_thermal_zone(struct device_node *np)
879 if (tz->num_tbps == 0) 879 if (tz->num_tbps == 0)
880 goto finish; 880 goto finish;
881 881
882 tz->tbps = kzalloc(tz->num_tbps * sizeof(*tz->tbps), GFP_KERNEL); 882 tz->tbps = kcalloc(tz->num_tbps, sizeof(*tz->tbps), GFP_KERNEL);
883 if (!tz->tbps) { 883 if (!tz->tbps) {
884 ret = -ENOMEM; 884 ret = -ENOMEM;
885 goto free_trips; 885 goto free_trips;
diff --git a/drivers/thermal/tegra/soctherm.c b/drivers/thermal/tegra/soctherm.c
index 207a79838643..ed28110a3535 100644
--- a/drivers/thermal/tegra/soctherm.c
+++ b/drivers/thermal/tegra/soctherm.c
@@ -1318,8 +1318,8 @@ static int tegra_soctherm_probe(struct platform_device *pdev)
1318 return PTR_ERR(tegra->clock_soctherm); 1318 return PTR_ERR(tegra->clock_soctherm);
1319 } 1319 }
1320 1320
1321 tegra->calib = devm_kzalloc(&pdev->dev, 1321 tegra->calib = devm_kcalloc(&pdev->dev,
1322 sizeof(u32) * soc->num_tsensors, 1322 soc->num_tsensors, sizeof(u32),
1323 GFP_KERNEL); 1323 GFP_KERNEL);
1324 if (!tegra->calib) 1324 if (!tegra->calib)
1325 return -ENOMEM; 1325 return -ENOMEM;
@@ -1338,8 +1338,8 @@ static int tegra_soctherm_probe(struct platform_device *pdev)
1338 return err; 1338 return err;
1339 } 1339 }
1340 1340
1341 tegra->thermctl_tzs = devm_kzalloc(&pdev->dev, 1341 tegra->thermctl_tzs = devm_kcalloc(&pdev->dev,
1342 sizeof(*z) * soc->num_ttgs, 1342 soc->num_ttgs, sizeof(*z),
1343 GFP_KERNEL); 1343 GFP_KERNEL);
1344 if (!tegra->thermctl_tzs) 1344 if (!tegra->thermctl_tzs)
1345 return -ENOMEM; 1345 return -ENOMEM;
diff --git a/drivers/thermal/thermal-generic-adc.c b/drivers/thermal/thermal-generic-adc.c
index 46d3005335c7..bf1c628d4a7a 100644
--- a/drivers/thermal/thermal-generic-adc.c
+++ b/drivers/thermal/thermal-generic-adc.c
@@ -87,8 +87,9 @@ static int gadc_thermal_read_linear_lookup_table(struct device *dev,
87 return -EINVAL; 87 return -EINVAL;
88 } 88 }
89 89
90 gti->lookup_table = devm_kzalloc(dev, sizeof(*gti->lookup_table) * 90 gti->lookup_table = devm_kcalloc(dev,
91 ntable, GFP_KERNEL); 91 ntable, sizeof(*gti->lookup_table),
92 GFP_KERNEL);
92 if (!gti->lookup_table) 93 if (!gti->lookup_table)
93 return -ENOMEM; 94 return -ENOMEM;
94 95
diff --git a/drivers/thermal/x86_pkg_temp_thermal.c b/drivers/thermal/x86_pkg_temp_thermal.c
index 1a6c88b10a39..1ef937d799e4 100644
--- a/drivers/thermal/x86_pkg_temp_thermal.c
+++ b/drivers/thermal/x86_pkg_temp_thermal.c
@@ -516,7 +516,8 @@ static int __init pkg_temp_thermal_init(void)
516 return -ENODEV; 516 return -ENODEV;
517 517
518 max_packages = topology_max_packages(); 518 max_packages = topology_max_packages();
519 packages = kzalloc(max_packages * sizeof(struct pkg_device *), GFP_KERNEL); 519 packages = kcalloc(max_packages, sizeof(struct pkg_device *),
520 GFP_KERNEL);
520 if (!packages) 521 if (!packages)
521 return -ENOMEM; 522 return -ENOMEM;
522 523
diff --git a/drivers/tty/ehv_bytechan.c b/drivers/tty/ehv_bytechan.c
index 47ac56817c43..eea4049b5dcc 100644
--- a/drivers/tty/ehv_bytechan.c
+++ b/drivers/tty/ehv_bytechan.c
@@ -754,7 +754,7 @@ static int __init ehv_bc_init(void)
754 * array, then you can use pointer math (e.g. "bc - bcs") to get its 754 * array, then you can use pointer math (e.g. "bc - bcs") to get its
755 * tty index. 755 * tty index.
756 */ 756 */
757 bcs = kzalloc(count * sizeof(struct ehv_bc_data), GFP_KERNEL); 757 bcs = kcalloc(count, sizeof(struct ehv_bc_data), GFP_KERNEL);
758 if (!bcs) 758 if (!bcs)
759 return -ENOMEM; 759 return -ENOMEM;
760 760
diff --git a/drivers/tty/goldfish.c b/drivers/tty/goldfish.c
index 1c1bd0afcd48..37caba7c3aff 100644
--- a/drivers/tty/goldfish.c
+++ b/drivers/tty/goldfish.c
@@ -245,8 +245,9 @@ static int goldfish_tty_create_driver(void)
245 int ret; 245 int ret;
246 struct tty_driver *tty; 246 struct tty_driver *tty;
247 247
248 goldfish_ttys = kzalloc(sizeof(*goldfish_ttys) * 248 goldfish_ttys = kcalloc(goldfish_tty_line_count,
249 goldfish_tty_line_count, GFP_KERNEL); 249 sizeof(*goldfish_ttys),
250 GFP_KERNEL);
250 if (goldfish_ttys == NULL) { 251 if (goldfish_ttys == NULL) {
251 ret = -ENOMEM; 252 ret = -ENOMEM;
252 goto err_alloc_goldfish_ttys_failed; 253 goto err_alloc_goldfish_ttys_failed;
diff --git a/drivers/tty/hvc/hvc_iucv.c b/drivers/tty/hvc/hvc_iucv.c
index a74680729825..2af1e5751bd6 100644
--- a/drivers/tty/hvc/hvc_iucv.c
+++ b/drivers/tty/hvc/hvc_iucv.c
@@ -1252,7 +1252,7 @@ static int hvc_iucv_setup_filter(const char *val)
1252 if (size > MAX_VMID_FILTER) 1252 if (size > MAX_VMID_FILTER)
1253 return -ENOSPC; 1253 return -ENOSPC;
1254 1254
1255 array = kzalloc(size * 8, GFP_KERNEL); 1255 array = kcalloc(size, 8, GFP_KERNEL);
1256 if (!array) 1256 if (!array)
1257 return -ENOMEM; 1257 return -ENOMEM;
1258 1258
diff --git a/drivers/tty/hvc/hvcs.c b/drivers/tty/hvc/hvcs.c
index 1db1d97e72e7..cb4db1b3ca3c 100644
--- a/drivers/tty/hvc/hvcs.c
+++ b/drivers/tty/hvc/hvcs.c
@@ -1441,7 +1441,8 @@ static int hvcs_alloc_index_list(int n)
1441{ 1441{
1442 int i; 1442 int i;
1443 1443
1444 hvcs_index_list = kmalloc(n * sizeof(hvcs_index_count),GFP_KERNEL); 1444 hvcs_index_list = kmalloc_array(n, sizeof(hvcs_index_count),
1445 GFP_KERNEL);
1445 if (!hvcs_index_list) 1446 if (!hvcs_index_list)
1446 return -ENOMEM; 1447 return -ENOMEM;
1447 hvcs_index_count = n; 1448 hvcs_index_count = n;
diff --git a/drivers/tty/isicom.c b/drivers/tty/isicom.c
index bdd3027ef01b..8d96e86966f1 100644
--- a/drivers/tty/isicom.c
+++ b/drivers/tty/isicom.c
@@ -1477,7 +1477,7 @@ static int load_firmware(struct pci_dev *pdev,
1477 goto errrelfw; 1477 goto errrelfw;
1478 } 1478 }
1479 1479
1480 data = kmalloc(word_count * 2, GFP_KERNEL); 1480 data = kmalloc_array(word_count, 2, GFP_KERNEL);
1481 if (data == NULL) { 1481 if (data == NULL) {
1482 dev_err(&pdev->dev, "Card%d, firmware upload " 1482 dev_err(&pdev->dev, "Card%d, firmware upload "
1483 "failed, not enough memory\n", index + 1); 1483 "failed, not enough memory\n", index + 1);
diff --git a/drivers/tty/serial/atmel_serial.c b/drivers/tty/serial/atmel_serial.c
index 55b3eff148b1..8e4428725848 100644
--- a/drivers/tty/serial/atmel_serial.c
+++ b/drivers/tty/serial/atmel_serial.c
@@ -2738,8 +2738,9 @@ static int atmel_serial_probe(struct platform_device *pdev)
2738 2738
2739 if (!atmel_use_pdc_rx(&atmel_port->uart)) { 2739 if (!atmel_use_pdc_rx(&atmel_port->uart)) {
2740 ret = -ENOMEM; 2740 ret = -ENOMEM;
2741 data = kmalloc(sizeof(struct atmel_uart_char) 2741 data = kmalloc_array(ATMEL_SERIAL_RINGSIZE,
2742 * ATMEL_SERIAL_RINGSIZE, GFP_KERNEL); 2742 sizeof(struct atmel_uart_char),
2743 GFP_KERNEL);
2743 if (!data) 2744 if (!data)
2744 goto err_alloc_ring; 2745 goto err_alloc_ring;
2745 atmel_port->rx_ring.buf = data; 2746 atmel_port->rx_ring.buf = data;
diff --git a/drivers/tty/serial/pch_uart.c b/drivers/tty/serial/pch_uart.c
index 760d5dd0aada..cb85002a10d8 100644
--- a/drivers/tty/serial/pch_uart.c
+++ b/drivers/tty/serial/pch_uart.c
@@ -991,7 +991,7 @@ static unsigned int dma_handle_tx(struct eg20t_port *priv)
991 991
992 priv->tx_dma_use = 1; 992 priv->tx_dma_use = 1;
993 993
994 priv->sg_tx_p = kzalloc(sizeof(struct scatterlist)*num, GFP_ATOMIC); 994 priv->sg_tx_p = kcalloc(num, sizeof(struct scatterlist), GFP_ATOMIC);
995 if (!priv->sg_tx_p) { 995 if (!priv->sg_tx_p) {
996 dev_err(priv->port.dev, "%s:kzalloc Failed\n", __func__); 996 dev_err(priv->port.dev, "%s:kzalloc Failed\n", __func__);
997 return 0; 997 return 0;
diff --git a/drivers/tty/serial/rp2.c b/drivers/tty/serial/rp2.c
index 520b43b23543..5690c09cc041 100644
--- a/drivers/tty/serial/rp2.c
+++ b/drivers/tty/serial/rp2.c
@@ -774,7 +774,7 @@ static int rp2_probe(struct pci_dev *pdev,
774 774
775 rp2_init_card(card); 775 rp2_init_card(card);
776 776
777 ports = devm_kzalloc(&pdev->dev, sizeof(*ports) * card->n_ports, 777 ports = devm_kcalloc(&pdev->dev, card->n_ports, sizeof(*ports),
778 GFP_KERNEL); 778 GFP_KERNEL);
779 if (!ports) 779 if (!ports)
780 return -ENOMEM; 780 return -ENOMEM;
diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c
index 890b8832aff2..9c14a453f73c 100644
--- a/drivers/tty/serial/serial_core.c
+++ b/drivers/tty/serial/serial_core.c
@@ -2445,7 +2445,7 @@ int uart_register_driver(struct uart_driver *drv)
2445 * Maybe we should be using a slab cache for this, especially if 2445 * Maybe we should be using a slab cache for this, especially if
2446 * we have a large number of ports to handle. 2446 * we have a large number of ports to handle.
2447 */ 2447 */
2448 drv->state = kzalloc(sizeof(struct uart_state) * drv->nr, GFP_KERNEL); 2448 drv->state = kcalloc(drv->nr, sizeof(struct uart_state), GFP_KERNEL);
2449 if (!drv->state) 2449 if (!drv->state)
2450 goto out; 2450 goto out;
2451 2451
diff --git a/drivers/tty/serial/sunsab.c b/drivers/tty/serial/sunsab.c
index b93d0225f8c9..72131b5e132e 100644
--- a/drivers/tty/serial/sunsab.c
+++ b/drivers/tty/serial/sunsab.c
@@ -1125,8 +1125,9 @@ static int __init sunsab_init(void)
1125 } 1125 }
1126 1126
1127 if (num_channels) { 1127 if (num_channels) {
1128 sunsab_ports = kzalloc(sizeof(struct uart_sunsab_port) * 1128 sunsab_ports = kcalloc(num_channels,
1129 num_channels, GFP_KERNEL); 1129 sizeof(struct uart_sunsab_port),
1130 GFP_KERNEL);
1130 if (!sunsab_ports) 1131 if (!sunsab_ports)
1131 return -ENOMEM; 1132 return -ENOMEM;
1132 1133
diff --git a/drivers/tty/vt/consolemap.c b/drivers/tty/vt/consolemap.c
index 722a6690c70d..7c7ada0b3ea0 100644
--- a/drivers/tty/vt/consolemap.c
+++ b/drivers/tty/vt/consolemap.c
@@ -231,7 +231,7 @@ static void set_inverse_trans_unicode(struct vc_data *conp,
231 q = p->inverse_trans_unicode; 231 q = p->inverse_trans_unicode;
232 if (!q) { 232 if (!q) {
233 q = p->inverse_trans_unicode = 233 q = p->inverse_trans_unicode =
234 kmalloc(MAX_GLYPH * sizeof(u16), GFP_KERNEL); 234 kmalloc_array(MAX_GLYPH, sizeof(u16), GFP_KERNEL);
235 if (!q) 235 if (!q)
236 return; 236 return;
237 } 237 }
@@ -479,7 +479,8 @@ con_insert_unipair(struct uni_pagedir *p, u_short unicode, u_short fontpos)
479 479
480 p1 = p->uni_pgdir[n = unicode >> 11]; 480 p1 = p->uni_pgdir[n = unicode >> 11];
481 if (!p1) { 481 if (!p1) {
482 p1 = p->uni_pgdir[n] = kmalloc(32*sizeof(u16 *), GFP_KERNEL); 482 p1 = p->uni_pgdir[n] = kmalloc_array(32, sizeof(u16 *),
483 GFP_KERNEL);
483 if (!p1) return -ENOMEM; 484 if (!p1) return -ENOMEM;
484 for (i = 0; i < 32; i++) 485 for (i = 0; i < 32; i++)
485 p1[i] = NULL; 486 p1[i] = NULL;
@@ -487,7 +488,7 @@ con_insert_unipair(struct uni_pagedir *p, u_short unicode, u_short fontpos)
487 488
488 p2 = p1[n = (unicode >> 6) & 0x1f]; 489 p2 = p1[n = (unicode >> 6) & 0x1f];
489 if (!p2) { 490 if (!p2) {
490 p2 = p1[n] = kmalloc(64*sizeof(u16), GFP_KERNEL); 491 p2 = p1[n] = kmalloc_array(64, sizeof(u16), GFP_KERNEL);
491 if (!p2) return -ENOMEM; 492 if (!p2) return -ENOMEM;
492 memset(p2, 0xff, 64*sizeof(u16)); /* No glyphs for the characters (yet) */ 493 memset(p2, 0xff, 64*sizeof(u16)); /* No glyphs for the characters (yet) */
493 } 494 }
diff --git a/drivers/tty/vt/keyboard.c b/drivers/tty/vt/keyboard.c
index 5d412df8e943..d5b4a2b44ab8 100644
--- a/drivers/tty/vt/keyboard.c
+++ b/drivers/tty/vt/keyboard.c
@@ -1624,7 +1624,7 @@ int vt_do_diacrit(unsigned int cmd, void __user *udp, int perm)
1624 struct kbdiacr *dia; 1624 struct kbdiacr *dia;
1625 int i; 1625 int i;
1626 1626
1627 dia = kmalloc(MAX_DIACR * sizeof(struct kbdiacr), 1627 dia = kmalloc_array(MAX_DIACR, sizeof(struct kbdiacr),
1628 GFP_KERNEL); 1628 GFP_KERNEL);
1629 if (!dia) 1629 if (!dia)
1630 return -ENOMEM; 1630 return -ENOMEM;
@@ -1657,7 +1657,7 @@ int vt_do_diacrit(unsigned int cmd, void __user *udp, int perm)
1657 struct kbdiacrsuc __user *a = udp; 1657 struct kbdiacrsuc __user *a = udp;
1658 void *buf; 1658 void *buf;
1659 1659
1660 buf = kmalloc(MAX_DIACR * sizeof(struct kbdiacruc), 1660 buf = kmalloc_array(MAX_DIACR, sizeof(struct kbdiacruc),
1661 GFP_KERNEL); 1661 GFP_KERNEL);
1662 if (buf == NULL) 1662 if (buf == NULL)
1663 return -ENOMEM; 1663 return -ENOMEM;
diff --git a/drivers/tty/vt/selection.c b/drivers/tty/vt/selection.c
index 7851383fbd6c..90ea1cc52b7a 100644
--- a/drivers/tty/vt/selection.c
+++ b/drivers/tty/vt/selection.c
@@ -280,7 +280,8 @@ int set_selection(const struct tiocl_selection __user *sel, struct tty_struct *t
280 280
281 /* Allocate a new buffer before freeing the old one ... */ 281 /* Allocate a new buffer before freeing the old one ... */
282 multiplier = use_unicode ? 3 : 1; /* chars can take up to 3 bytes */ 282 multiplier = use_unicode ? 3 : 1; /* chars can take up to 3 bytes */
283 bp = kmalloc(((sel_end-sel_start)/2+1)*multiplier, GFP_KERNEL); 283 bp = kmalloc_array((sel_end - sel_start) / 2 + 1, multiplier,
284 GFP_KERNEL);
284 if (!bp) { 285 if (!bp) {
285 printk(KERN_WARNING "selection: kmalloc() failed\n"); 286 printk(KERN_WARNING "selection: kmalloc() failed\n");
286 clear_selection(); 287 clear_selection();
diff --git a/drivers/uio/uio_pruss.c b/drivers/uio/uio_pruss.c
index 31d5b1d3b5af..91aea8823af5 100644
--- a/drivers/uio/uio_pruss.c
+++ b/drivers/uio/uio_pruss.c
@@ -129,7 +129,7 @@ static int pruss_probe(struct platform_device *pdev)
129 if (!gdev) 129 if (!gdev)
130 return -ENOMEM; 130 return -ENOMEM;
131 131
132 gdev->info = kzalloc(sizeof(*p) * MAX_PRUSS_EVT, GFP_KERNEL); 132 gdev->info = kcalloc(MAX_PRUSS_EVT, sizeof(*p), GFP_KERNEL);
133 if (!gdev->info) { 133 if (!gdev->info) {
134 kfree(gdev); 134 kfree(gdev);
135 return -ENOMEM; 135 return -ENOMEM;
diff --git a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c
index 76e16c5251b9..476dcc5f2da3 100644
--- a/drivers/usb/core/devio.c
+++ b/drivers/usb/core/devio.c
@@ -897,7 +897,7 @@ static int parse_usbdevfs_streams(struct usb_dev_state *ps,
897 if (num_streams_ret && (num_streams < 2 || num_streams > 65536)) 897 if (num_streams_ret && (num_streams < 2 || num_streams > 65536))
898 return -EINVAL; 898 return -EINVAL;
899 899
900 eps = kmalloc(num_eps * sizeof(*eps), GFP_KERNEL); 900 eps = kmalloc_array(num_eps, sizeof(*eps), GFP_KERNEL);
901 if (!eps) 901 if (!eps)
902 return -ENOMEM; 902 return -ENOMEM;
903 903
@@ -1602,8 +1602,9 @@ static int proc_do_submiturb(struct usb_dev_state *ps, struct usbdevfs_urb *uurb
1602 as->mem_usage = u; 1602 as->mem_usage = u;
1603 1603
1604 if (num_sgs) { 1604 if (num_sgs) {
1605 as->urb->sg = kmalloc(num_sgs * sizeof(struct scatterlist), 1605 as->urb->sg = kmalloc_array(num_sgs,
1606 GFP_KERNEL); 1606 sizeof(struct scatterlist),
1607 GFP_KERNEL);
1607 if (!as->urb->sg) { 1608 if (!as->urb->sg) {
1608 ret = -ENOMEM; 1609 ret = -ENOMEM;
1609 goto error; 1610 goto error;
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
index 26c2438d2889..fcae521df29b 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -1376,7 +1376,7 @@ static int hub_configure(struct usb_hub *hub,
1376 dev_info(hub_dev, "%d port%s detected\n", maxchild, 1376 dev_info(hub_dev, "%d port%s detected\n", maxchild,
1377 (maxchild == 1) ? "" : "s"); 1377 (maxchild == 1) ? "" : "s");
1378 1378
1379 hub->ports = kzalloc(maxchild * sizeof(struct usb_port *), GFP_KERNEL); 1379 hub->ports = kcalloc(maxchild, sizeof(struct usb_port *), GFP_KERNEL);
1380 if (!hub->ports) { 1380 if (!hub->ports) {
1381 ret = -ENOMEM; 1381 ret = -ENOMEM;
1382 goto fail; 1382 goto fail;
diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c
index 7b137003c2be..1a15392326fc 100644
--- a/drivers/usb/core/message.c
+++ b/drivers/usb/core/message.c
@@ -390,7 +390,7 @@ int usb_sg_init(struct usb_sg_request *io, struct usb_device *dev,
390 } 390 }
391 391
392 /* initialize all the urbs we'll use */ 392 /* initialize all the urbs we'll use */
393 io->urbs = kmalloc(io->entries * sizeof(*io->urbs), mem_flags); 393 io->urbs = kmalloc_array(io->entries, sizeof(*io->urbs), mem_flags);
394 if (!io->urbs) 394 if (!io->urbs)
395 goto nomem; 395 goto nomem;
396 396
@@ -1824,8 +1824,8 @@ int usb_set_configuration(struct usb_device *dev, int configuration)
1824 n = nintf = 0; 1824 n = nintf = 0;
1825 if (cp) { 1825 if (cp) {
1826 nintf = cp->desc.bNumInterfaces; 1826 nintf = cp->desc.bNumInterfaces;
1827 new_interfaces = kmalloc(nintf * sizeof(*new_interfaces), 1827 new_interfaces = kmalloc_array(nintf, sizeof(*new_interfaces),
1828 GFP_NOIO); 1828 GFP_NOIO);
1829 if (!new_interfaces) 1829 if (!new_interfaces)
1830 return -ENOMEM; 1830 return -ENOMEM;
1831 1831
diff --git a/drivers/usb/dwc2/hcd.c b/drivers/usb/dwc2/hcd.c
index 1faefea16cec..edaf0b6af4f0 100644
--- a/drivers/usb/dwc2/hcd.c
+++ b/drivers/usb/dwc2/hcd.c
@@ -5079,13 +5079,14 @@ int dwc2_hcd_init(struct dwc2_hsotg *hsotg)
5079 dev_dbg(hsotg->dev, "hcfg=%08x\n", hcfg); 5079 dev_dbg(hsotg->dev, "hcfg=%08x\n", hcfg);
5080 5080
5081#ifdef CONFIG_USB_DWC2_TRACK_MISSED_SOFS 5081#ifdef CONFIG_USB_DWC2_TRACK_MISSED_SOFS
5082 hsotg->frame_num_array = kzalloc(sizeof(*hsotg->frame_num_array) * 5082 hsotg->frame_num_array = kcalloc(FRAME_NUM_ARRAY_SIZE,
5083 FRAME_NUM_ARRAY_SIZE, GFP_KERNEL); 5083 sizeof(*hsotg->frame_num_array),
5084 GFP_KERNEL);
5084 if (!hsotg->frame_num_array) 5085 if (!hsotg->frame_num_array)
5085 goto error1; 5086 goto error1;
5086 hsotg->last_frame_num_array = kzalloc( 5087 hsotg->last_frame_num_array =
5087 sizeof(*hsotg->last_frame_num_array) * 5088 kcalloc(FRAME_NUM_ARRAY_SIZE,
5088 FRAME_NUM_ARRAY_SIZE, GFP_KERNEL); 5089 sizeof(*hsotg->last_frame_num_array), GFP_KERNEL);
5089 if (!hsotg->last_frame_num_array) 5090 if (!hsotg->last_frame_num_array)
5090 goto error1; 5091 goto error1;
5091#endif 5092#endif
diff --git a/drivers/usb/gadget/udc/atmel_usba_udc.c b/drivers/usb/gadget/udc/atmel_usba_udc.c
index a4d99bf50f2f..17147b8c771e 100644
--- a/drivers/usb/gadget/udc/atmel_usba_udc.c
+++ b/drivers/usb/gadget/udc/atmel_usba_udc.c
@@ -2036,7 +2036,7 @@ static struct usba_ep * atmel_udc_of_init(struct platform_device *pdev,
2036 udc->num_ep = usba_config_fifo_table(udc); 2036 udc->num_ep = usba_config_fifo_table(udc);
2037 } 2037 }
2038 2038
2039 eps = devm_kzalloc(&pdev->dev, sizeof(struct usba_ep) * udc->num_ep, 2039 eps = devm_kcalloc(&pdev->dev, udc->num_ep, sizeof(struct usba_ep),
2040 GFP_KERNEL); 2040 GFP_KERNEL);
2041 if (!eps) 2041 if (!eps)
2042 return ERR_PTR(-ENOMEM); 2042 return ERR_PTR(-ENOMEM);
diff --git a/drivers/usb/gadget/udc/bdc/bdc_ep.c b/drivers/usb/gadget/udc/bdc/bdc_ep.c
index 03149b9d7ea7..a4d9b5e1e50e 100644
--- a/drivers/usb/gadget/udc/bdc/bdc_ep.c
+++ b/drivers/usb/gadget/udc/bdc/bdc_ep.c
@@ -138,9 +138,9 @@ static int ep_bd_list_alloc(struct bdc_ep *ep)
138 __func__, ep, num_tabs); 138 __func__, ep, num_tabs);
139 139
140 /* Allocate memory for table array */ 140 /* Allocate memory for table array */
141 ep->bd_list.bd_table_array = kzalloc( 141 ep->bd_list.bd_table_array = kcalloc(num_tabs,
142 num_tabs * sizeof(struct bd_table *), 142 sizeof(struct bd_table *),
143 GFP_ATOMIC); 143 GFP_ATOMIC);
144 if (!ep->bd_list.bd_table_array) 144 if (!ep->bd_list.bd_table_array)
145 return -ENOMEM; 145 return -ENOMEM;
146 146
diff --git a/drivers/usb/gadget/udc/fsl_udc_core.c b/drivers/usb/gadget/udc/fsl_udc_core.c
index 9a3f7db26a5e..be59309e848c 100644
--- a/drivers/usb/gadget/udc/fsl_udc_core.c
+++ b/drivers/usb/gadget/udc/fsl_udc_core.c
@@ -2246,7 +2246,7 @@ static int struct_udc_setup(struct fsl_udc *udc,
2246 pdata = dev_get_platdata(&pdev->dev); 2246 pdata = dev_get_platdata(&pdev->dev);
2247 udc->phy_mode = pdata->phy_mode; 2247 udc->phy_mode = pdata->phy_mode;
2248 2248
2249 udc->eps = kzalloc(sizeof(struct fsl_ep) * udc->max_ep, GFP_KERNEL); 2249 udc->eps = kcalloc(udc->max_ep, sizeof(struct fsl_ep), GFP_KERNEL);
2250 if (!udc->eps) 2250 if (!udc->eps)
2251 return -1; 2251 return -1;
2252 2252
diff --git a/drivers/usb/gadget/udc/renesas_usb3.c b/drivers/usb/gadget/udc/renesas_usb3.c
index 977ea1a02cf9..7cf98c793e04 100644
--- a/drivers/usb/gadget/udc/renesas_usb3.c
+++ b/drivers/usb/gadget/udc/renesas_usb3.c
@@ -2427,7 +2427,8 @@ static int renesas_usb3_init_ep(struct renesas_usb3 *usb3, struct device *dev,
2427 if (usb3->num_usb3_eps > USB3_MAX_NUM_PIPES) 2427 if (usb3->num_usb3_eps > USB3_MAX_NUM_PIPES)
2428 usb3->num_usb3_eps = USB3_MAX_NUM_PIPES; 2428 usb3->num_usb3_eps = USB3_MAX_NUM_PIPES;
2429 2429
2430 usb3->usb3_ep = devm_kzalloc(dev, sizeof(*usb3_ep) * usb3->num_usb3_eps, 2430 usb3->usb3_ep = devm_kcalloc(dev,
2431 usb3->num_usb3_eps, sizeof(*usb3_ep),
2431 GFP_KERNEL); 2432 GFP_KERNEL);
2432 if (!usb3->usb3_ep) 2433 if (!usb3->usb3_ep)
2433 return -ENOMEM; 2434 return -ENOMEM;
diff --git a/drivers/usb/host/ehci-sched.c b/drivers/usb/host/ehci-sched.c
index e56db44708bc..1d87295682b8 100644
--- a/drivers/usb/host/ehci-sched.c
+++ b/drivers/usb/host/ehci-sched.c
@@ -117,8 +117,9 @@ static struct ehci_tt *find_tt(struct usb_device *udev)
117 if (utt->multi) { 117 if (utt->multi) {
118 tt_index = utt->hcpriv; 118 tt_index = utt->hcpriv;
119 if (!tt_index) { /* Create the index array */ 119 if (!tt_index) { /* Create the index array */
120 tt_index = kzalloc(utt->hub->maxchild * 120 tt_index = kcalloc(utt->hub->maxchild,
121 sizeof(*tt_index), GFP_ATOMIC); 121 sizeof(*tt_index),
122 GFP_ATOMIC);
122 if (!tt_index) 123 if (!tt_index)
123 return ERR_PTR(-ENOMEM); 124 return ERR_PTR(-ENOMEM);
124 utt->hcpriv = tt_index; 125 utt->hcpriv = tt_index;
diff --git a/drivers/usb/host/fhci-tds.c b/drivers/usb/host/fhci-tds.c
index 3a4e8f616751..f3308ce25043 100644
--- a/drivers/usb/host/fhci-tds.c
+++ b/drivers/usb/host/fhci-tds.c
@@ -189,7 +189,7 @@ u32 fhci_create_ep(struct fhci_usb *usb, enum fhci_mem_alloc data_mem,
189 goto err; 189 goto err;
190 } 190 }
191 191
192 buff = kmalloc(1028 * sizeof(*buff), GFP_KERNEL); 192 buff = kmalloc_array(1028, sizeof(*buff), GFP_KERNEL);
193 if (!buff) { 193 if (!buff) {
194 kfree(pkt); 194 kfree(pkt);
195 err_for = "buffer"; 195 err_for = "buffer";
diff --git a/drivers/usb/host/imx21-hcd.c b/drivers/usb/host/imx21-hcd.c
index 3a8bbfe43a8e..6e3dad19d369 100644
--- a/drivers/usb/host/imx21-hcd.c
+++ b/drivers/usb/host/imx21-hcd.c
@@ -741,8 +741,8 @@ static int imx21_hc_urb_enqueue_isoc(struct usb_hcd *hcd,
741 if (urb_priv == NULL) 741 if (urb_priv == NULL)
742 return -ENOMEM; 742 return -ENOMEM;
743 743
744 urb_priv->isoc_td = kzalloc( 744 urb_priv->isoc_td = kcalloc(urb->number_of_packets, sizeof(struct td),
745 sizeof(struct td) * urb->number_of_packets, mem_flags); 745 mem_flags);
746 if (urb_priv->isoc_td == NULL) { 746 if (urb_priv->isoc_td == NULL) {
747 ret = -ENOMEM; 747 ret = -ENOMEM;
748 goto alloc_td_failed; 748 goto alloc_td_failed;
diff --git a/drivers/usb/host/ohci-dbg.c b/drivers/usb/host/ohci-dbg.c
index d3ee1f52aaab..4f267dc93882 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)
492 char *next; 492 char *next;
493 unsigned i; 493 unsigned i;
494 494
495 seen = kmalloc(DBG_SCHED_LIMIT * sizeof *seen, GFP_ATOMIC); 495 seen = kmalloc_array(DBG_SCHED_LIMIT, sizeof(*seen), GFP_ATOMIC);
496 if (!seen) 496 if (!seen)
497 return 0; 497 return 0;
498 seen_count = 0; 498 seen_count = 0;
diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c
index 4fe74711938e..acbd3d7b8828 100644
--- a/drivers/usb/host/xhci-mem.c
+++ b/drivers/usb/host/xhci-mem.c
@@ -2274,8 +2274,8 @@ static int xhci_setup_port_arrays(struct xhci_hcd *xhci, gfp_t flags)
2274 xhci->hw_ports[i].hw_portnum = i; 2274 xhci->hw_ports[i].hw_portnum = i;
2275 } 2275 }
2276 2276
2277 xhci->rh_bw = kzalloc_node(sizeof(*xhci->rh_bw)*num_ports, flags, 2277 xhci->rh_bw = kcalloc_node(num_ports, sizeof(*xhci->rh_bw), flags,
2278 dev_to_node(dev)); 2278 dev_to_node(dev));
2279 if (!xhci->rh_bw) 2279 if (!xhci->rh_bw)
2280 return -ENOMEM; 2280 return -ENOMEM;
2281 for (i = 0; i < num_ports; i++) { 2281 for (i = 0; i < num_ports; i++) {
diff --git a/drivers/usb/misc/ldusb.c b/drivers/usb/misc/ldusb.c
index 236a60f53099..c2e255f02a72 100644
--- a/drivers/usb/misc/ldusb.c
+++ b/drivers/usb/misc/ldusb.c
@@ -695,7 +695,10 @@ static int ld_usb_probe(struct usb_interface *intf, const struct usb_device_id *
695 dev_warn(&intf->dev, "Interrupt out endpoint not found (using control endpoint instead)\n"); 695 dev_warn(&intf->dev, "Interrupt out endpoint not found (using control endpoint instead)\n");
696 696
697 dev->interrupt_in_endpoint_size = usb_endpoint_maxp(dev->interrupt_in_endpoint); 697 dev->interrupt_in_endpoint_size = usb_endpoint_maxp(dev->interrupt_in_endpoint);
698 dev->ring_buffer = kmalloc(ring_buffer_size*(sizeof(size_t)+dev->interrupt_in_endpoint_size), GFP_KERNEL); 698 dev->ring_buffer =
699 kmalloc_array(ring_buffer_size,
700 sizeof(size_t) + dev->interrupt_in_endpoint_size,
701 GFP_KERNEL);
699 if (!dev->ring_buffer) 702 if (!dev->ring_buffer)
700 goto error; 703 goto error;
701 dev->interrupt_in_buffer = kmalloc(dev->interrupt_in_endpoint_size, GFP_KERNEL); 704 dev->interrupt_in_buffer = kmalloc(dev->interrupt_in_endpoint_size, GFP_KERNEL);
@@ -706,7 +709,9 @@ static int ld_usb_probe(struct usb_interface *intf, const struct usb_device_id *
706 goto error; 709 goto error;
707 dev->interrupt_out_endpoint_size = dev->interrupt_out_endpoint ? usb_endpoint_maxp(dev->interrupt_out_endpoint) : 710 dev->interrupt_out_endpoint_size = dev->interrupt_out_endpoint ? usb_endpoint_maxp(dev->interrupt_out_endpoint) :
708 udev->descriptor.bMaxPacketSize0; 711 udev->descriptor.bMaxPacketSize0;
709 dev->interrupt_out_buffer = kmalloc(write_buffer_size*dev->interrupt_out_endpoint_size, GFP_KERNEL); 712 dev->interrupt_out_buffer =
713 kmalloc_array(write_buffer_size,
714 dev->interrupt_out_endpoint_size, GFP_KERNEL);
710 if (!dev->interrupt_out_buffer) 715 if (!dev->interrupt_out_buffer)
711 goto error; 716 goto error;
712 dev->interrupt_out_urb = usb_alloc_urb(0, GFP_KERNEL); 717 dev->interrupt_out_urb = usb_alloc_urb(0, GFP_KERNEL);
diff --git a/drivers/usb/misc/sisusbvga/sisusb_con.c b/drivers/usb/misc/sisusbvga/sisusb_con.c
index a0d6e0af957c..c4f017e1d17a 100644
--- a/drivers/usb/misc/sisusbvga/sisusb_con.c
+++ b/drivers/usb/misc/sisusbvga/sisusb_con.c
@@ -1243,7 +1243,7 @@ sisusbcon_font_set(struct vc_data *c, struct console_font *font,
1243 } 1243 }
1244 1244
1245 if (!sisusb->font_backup) 1245 if (!sisusb->font_backup)
1246 sisusb->font_backup = vmalloc(charcount * 32); 1246 sisusb->font_backup = vmalloc(array_size(charcount, 32));
1247 1247
1248 if (sisusb->font_backup) { 1248 if (sisusb->font_backup) {
1249 memcpy(sisusb->font_backup, font->data, charcount * 32); 1249 memcpy(sisusb->font_backup, font->data, charcount * 32);
diff --git a/drivers/usb/mon/mon_bin.c b/drivers/usb/mon/mon_bin.c
index 34e866ad4a81..ad2c082bd0fb 100644
--- a/drivers/usb/mon/mon_bin.c
+++ b/drivers/usb/mon/mon_bin.c
@@ -1024,7 +1024,8 @@ static long mon_bin_ioctl(struct file *file, unsigned int cmd, unsigned long arg
1024 return -EINVAL; 1024 return -EINVAL;
1025 1025
1026 size = CHUNK_ALIGN(arg); 1026 size = CHUNK_ALIGN(arg);
1027 vec = kzalloc(sizeof(struct mon_pgmap) * (size / CHUNK_SIZE), GFP_KERNEL); 1027 vec = kcalloc(size / CHUNK_SIZE, sizeof(struct mon_pgmap),
1028 GFP_KERNEL);
1028 if (vec == NULL) { 1029 if (vec == NULL) {
1029 ret = -ENOMEM; 1030 ret = -ENOMEM;
1030 break; 1031 break;
diff --git a/drivers/usb/renesas_usbhs/mod_gadget.c b/drivers/usb/renesas_usbhs/mod_gadget.c
index 34ee9ebe12a3..33d059c40616 100644
--- a/drivers/usb/renesas_usbhs/mod_gadget.c
+++ b/drivers/usb/renesas_usbhs/mod_gadget.c
@@ -1068,7 +1068,7 @@ int usbhs_mod_gadget_probe(struct usbhs_priv *priv)
1068 if (!gpriv) 1068 if (!gpriv)
1069 return -ENOMEM; 1069 return -ENOMEM;
1070 1070
1071 uep = kzalloc(sizeof(struct usbhsg_uep) * pipe_size, GFP_KERNEL); 1071 uep = kcalloc(pipe_size, sizeof(struct usbhsg_uep), GFP_KERNEL);
1072 if (!uep) { 1072 if (!uep) {
1073 ret = -ENOMEM; 1073 ret = -ENOMEM;
1074 goto usbhs_mod_gadget_probe_err_gpriv; 1074 goto usbhs_mod_gadget_probe_err_gpriv;
diff --git a/drivers/usb/renesas_usbhs/pipe.c b/drivers/usb/renesas_usbhs/pipe.c
index 9677e0e31475..c4922b96c93b 100644
--- a/drivers/usb/renesas_usbhs/pipe.c
+++ b/drivers/usb/renesas_usbhs/pipe.c
@@ -803,7 +803,8 @@ int usbhs_pipe_probe(struct usbhs_priv *priv)
803 return -EINVAL; 803 return -EINVAL;
804 } 804 }
805 805
806 info->pipe = kzalloc(sizeof(struct usbhs_pipe) * pipe_size, GFP_KERNEL); 806 info->pipe = kcalloc(pipe_size, sizeof(struct usbhs_pipe),
807 GFP_KERNEL);
807 if (!info->pipe) 808 if (!info->pipe)
808 return -ENOMEM; 809 return -ENOMEM;
809 810
diff --git a/drivers/usb/serial/iuu_phoenix.c b/drivers/usb/serial/iuu_phoenix.c
index 62c91e360baf..2fb71303ec3a 100644
--- a/drivers/usb/serial/iuu_phoenix.c
+++ b/drivers/usb/serial/iuu_phoenix.c
@@ -736,7 +736,7 @@ static int iuu_uart_on(struct usb_serial_port *port)
736 int status; 736 int status;
737 u8 *buf; 737 u8 *buf;
738 738
739 buf = kmalloc(sizeof(u8) * 4, GFP_KERNEL); 739 buf = kmalloc(4, GFP_KERNEL);
740 740
741 if (!buf) 741 if (!buf)
742 return -ENOMEM; 742 return -ENOMEM;
@@ -790,7 +790,7 @@ static int iuu_uart_baud(struct usb_serial_port *port, u32 baud_base,
790 unsigned int T1FrekvensHZ = 0; 790 unsigned int T1FrekvensHZ = 0;
791 791
792 dev_dbg(&port->dev, "%s - enter baud_base=%d\n", __func__, baud_base); 792 dev_dbg(&port->dev, "%s - enter baud_base=%d\n", __func__, baud_base);
793 dataout = kmalloc(sizeof(u8) * 5, GFP_KERNEL); 793 dataout = kmalloc(5, GFP_KERNEL);
794 794
795 if (!dataout) 795 if (!dataout)
796 return -ENOMEM; 796 return -ENOMEM;
diff --git a/drivers/usb/storage/alauda.c b/drivers/usb/storage/alauda.c
index 900591df8bb2..6b8edf6178df 100644
--- a/drivers/usb/storage/alauda.c
+++ b/drivers/usb/storage/alauda.c
@@ -1025,7 +1025,7 @@ static int alauda_write_data(struct us_data *us, unsigned long address,
1025 * We also need a temporary block buffer, where we read in the old data, 1025 * We also need a temporary block buffer, where we read in the old data,
1026 * overwrite parts with the new data, and manipulate the redundancy data 1026 * overwrite parts with the new data, and manipulate the redundancy data
1027 */ 1027 */
1028 blockbuffer = kmalloc((pagesize + 64) * blocksize, GFP_NOIO); 1028 blockbuffer = kmalloc_array(pagesize + 64, blocksize, GFP_NOIO);
1029 if (!blockbuffer) { 1029 if (!blockbuffer) {
1030 kfree(buffer); 1030 kfree(buffer);
1031 return USB_STOR_TRANSPORT_ERROR; 1031 return USB_STOR_TRANSPORT_ERROR;
diff --git a/drivers/usb/storage/ene_ub6250.c b/drivers/usb/storage/ene_ub6250.c
index 93cf57ac47d6..4d261e4de9ad 100644
--- a/drivers/usb/storage/ene_ub6250.c
+++ b/drivers/usb/storage/ene_ub6250.c
@@ -807,8 +807,12 @@ static int ms_lib_alloc_logicalmap(struct us_data *us)
807 u32 i; 807 u32 i;
808 struct ene_ub6250_info *info = (struct ene_ub6250_info *) us->extra; 808 struct ene_ub6250_info *info = (struct ene_ub6250_info *) us->extra;
809 809
810 info->MS_Lib.Phy2LogMap = kmalloc(info->MS_Lib.NumberOfPhyBlock * sizeof(u16), GFP_KERNEL); 810 info->MS_Lib.Phy2LogMap = kmalloc_array(info->MS_Lib.NumberOfPhyBlock,
811 info->MS_Lib.Log2PhyMap = kmalloc(info->MS_Lib.NumberOfLogBlock * sizeof(u16), GFP_KERNEL); 811 sizeof(u16),
812 GFP_KERNEL);
813 info->MS_Lib.Log2PhyMap = kmalloc_array(info->MS_Lib.NumberOfLogBlock,
814 sizeof(u16),
815 GFP_KERNEL);
812 816
813 if ((info->MS_Lib.Phy2LogMap == NULL) || (info->MS_Lib.Log2PhyMap == NULL)) { 817 if ((info->MS_Lib.Phy2LogMap == NULL) || (info->MS_Lib.Log2PhyMap == NULL)) {
814 ms_lib_free_logicalmap(us); 818 ms_lib_free_logicalmap(us);
@@ -1113,8 +1117,12 @@ static int ms_lib_alloc_writebuf(struct us_data *us)
1113 1117
1114 info->MS_Lib.wrtblk = (u16)-1; 1118 info->MS_Lib.wrtblk = (u16)-1;
1115 1119
1116 info->MS_Lib.blkpag = kmalloc(info->MS_Lib.PagesPerBlock * info->MS_Lib.BytesPerSector, GFP_KERNEL); 1120 info->MS_Lib.blkpag = kmalloc_array(info->MS_Lib.PagesPerBlock,
1117 info->MS_Lib.blkext = kmalloc(info->MS_Lib.PagesPerBlock * sizeof(struct ms_lib_type_extdat), GFP_KERNEL); 1121 info->MS_Lib.BytesPerSector,
1122 GFP_KERNEL);
1123 info->MS_Lib.blkext = kmalloc_array(info->MS_Lib.PagesPerBlock,
1124 sizeof(struct ms_lib_type_extdat),
1125 GFP_KERNEL);
1118 1126
1119 if ((info->MS_Lib.blkpag == NULL) || (info->MS_Lib.blkext == NULL)) { 1127 if ((info->MS_Lib.blkpag == NULL) || (info->MS_Lib.blkext == NULL)) {
1120 ms_lib_free_writebuf(us); 1128 ms_lib_free_writebuf(us);
diff --git a/drivers/usb/storage/sddr09.c b/drivers/usb/storage/sddr09.c
index 1cf7dbfe277c..bc9da736bdfc 100644
--- a/drivers/usb/storage/sddr09.c
+++ b/drivers/usb/storage/sddr09.c
@@ -1231,8 +1231,8 @@ sddr09_read_map(struct us_data *us) {
1231 1231
1232 kfree(info->lba_to_pba); 1232 kfree(info->lba_to_pba);
1233 kfree(info->pba_to_lba); 1233 kfree(info->pba_to_lba);
1234 info->lba_to_pba = kmalloc(numblocks*sizeof(int), GFP_NOIO); 1234 info->lba_to_pba = kmalloc_array(numblocks, sizeof(int), GFP_NOIO);
1235 info->pba_to_lba = kmalloc(numblocks*sizeof(int), GFP_NOIO); 1235 info->pba_to_lba = kmalloc_array(numblocks, sizeof(int), GFP_NOIO);
1236 1236
1237 if (info->lba_to_pba == NULL || info->pba_to_lba == NULL) { 1237 if (info->lba_to_pba == NULL || info->pba_to_lba == NULL) {
1238 printk(KERN_WARNING "sddr09_read_map: out of memory\n"); 1238 printk(KERN_WARNING "sddr09_read_map: out of memory\n");
diff --git a/drivers/usb/storage/sddr55.c b/drivers/usb/storage/sddr55.c
index 8c814b2ec9b2..b8527c55335b 100644
--- a/drivers/usb/storage/sddr55.c
+++ b/drivers/usb/storage/sddr55.c
@@ -651,7 +651,7 @@ static int sddr55_read_map(struct us_data *us) {
651 651
652 numblocks = info->capacity >> (info->blockshift + info->pageshift); 652 numblocks = info->capacity >> (info->blockshift + info->pageshift);
653 653
654 buffer = kmalloc( numblocks * 2, GFP_NOIO ); 654 buffer = kmalloc_array(numblocks, 2, GFP_NOIO );
655 655
656 if (!buffer) 656 if (!buffer)
657 return -1; 657 return -1;
@@ -684,8 +684,8 @@ static int sddr55_read_map(struct us_data *us) {
684 684
685 kfree(info->lba_to_pba); 685 kfree(info->lba_to_pba);
686 kfree(info->pba_to_lba); 686 kfree(info->pba_to_lba);
687 info->lba_to_pba = kmalloc(numblocks*sizeof(int), GFP_NOIO); 687 info->lba_to_pba = kmalloc_array(numblocks, sizeof(int), GFP_NOIO);
688 info->pba_to_lba = kmalloc(numblocks*sizeof(int), GFP_NOIO); 688 info->pba_to_lba = kmalloc_array(numblocks, sizeof(int), GFP_NOIO);
689 689
690 if (info->lba_to_pba == NULL || info->pba_to_lba == NULL) { 690 if (info->lba_to_pba == NULL || info->pba_to_lba == NULL) {
691 kfree(info->lba_to_pba); 691 kfree(info->lba_to_pba);
diff --git a/drivers/usb/wusbcore/wa-rpipe.c b/drivers/usb/wusbcore/wa-rpipe.c
index d0f1a6698460..38884aac862b 100644
--- a/drivers/usb/wusbcore/wa-rpipe.c
+++ b/drivers/usb/wusbcore/wa-rpipe.c
@@ -470,7 +470,8 @@ error:
470int wa_rpipes_create(struct wahc *wa) 470int wa_rpipes_create(struct wahc *wa)
471{ 471{
472 wa->rpipes = le16_to_cpu(wa->wa_descr->wNumRPipes); 472 wa->rpipes = le16_to_cpu(wa->wa_descr->wNumRPipes);
473 wa->rpipe_bm = kzalloc(BITS_TO_LONGS(wa->rpipes)*sizeof(unsigned long), 473 wa->rpipe_bm = kcalloc(BITS_TO_LONGS(wa->rpipes),
474 sizeof(unsigned long),
474 GFP_KERNEL); 475 GFP_KERNEL);
475 if (wa->rpipe_bm == NULL) 476 if (wa->rpipe_bm == NULL)
476 return -ENOMEM; 477 return -ENOMEM;
diff --git a/drivers/uwb/est.c b/drivers/uwb/est.c
index f3e232584284..ad30ddfe30b3 100644
--- a/drivers/uwb/est.c
+++ b/drivers/uwb/est.c
@@ -217,7 +217,7 @@ static
217int uwb_est_grow(void) 217int uwb_est_grow(void)
218{ 218{
219 size_t actual_size = uwb_est_size * sizeof(uwb_est[0]); 219 size_t actual_size = uwb_est_size * sizeof(uwb_est[0]);
220 void *new = kmalloc(2 * actual_size, GFP_ATOMIC); 220 void *new = kmalloc_array(2, actual_size, GFP_ATOMIC);
221 if (new == NULL) 221 if (new == NULL)
222 return -ENOMEM; 222 return -ENOMEM;
223 memcpy(new, uwb_est, actual_size); 223 memcpy(new, uwb_est, actual_size);
diff --git a/drivers/uwb/i1480/dfu/usb.c b/drivers/uwb/i1480/dfu/usb.c
index a50cf45e530f..c0430a41e24b 100644
--- a/drivers/uwb/i1480/dfu/usb.c
+++ b/drivers/uwb/i1480/dfu/usb.c
@@ -376,7 +376,7 @@ int i1480_usb_probe(struct usb_interface *iface, const struct usb_device_id *id)
376 376
377 i1480 = &i1480_usb->i1480; 377 i1480 = &i1480_usb->i1480;
378 i1480->buf_size = 512; 378 i1480->buf_size = 512;
379 i1480->cmd_buf = kmalloc(2 * i1480->buf_size, GFP_KERNEL); 379 i1480->cmd_buf = kmalloc_array(2, i1480->buf_size, GFP_KERNEL);
380 if (i1480->cmd_buf == NULL) { 380 if (i1480->cmd_buf == NULL) {
381 dev_err(dev, "Cannot allocate transfer buffers\n"); 381 dev_err(dev, "Cannot allocate transfer buffers\n");
382 result = -ENOMEM; 382 result = -ENOMEM;
diff --git a/drivers/vhost/net.c b/drivers/vhost/net.c
index e7cf7d21cfb5..686dc670fd29 100644
--- a/drivers/vhost/net.c
+++ b/drivers/vhost/net.c
@@ -274,8 +274,10 @@ static int vhost_net_set_ubuf_info(struct vhost_net *n)
274 zcopy = vhost_net_zcopy_mask & (0x1 << i); 274 zcopy = vhost_net_zcopy_mask & (0x1 << i);
275 if (!zcopy) 275 if (!zcopy)
276 continue; 276 continue;
277 n->vqs[i].ubuf_info = kmalloc(sizeof(*n->vqs[i].ubuf_info) * 277 n->vqs[i].ubuf_info =
278 UIO_MAXIOV, GFP_KERNEL); 278 kmalloc_array(UIO_MAXIOV,
279 sizeof(*n->vqs[i].ubuf_info),
280 GFP_KERNEL);
279 if (!n->vqs[i].ubuf_info) 281 if (!n->vqs[i].ubuf_info)
280 goto err; 282 goto err;
281 } 283 }
@@ -943,7 +945,7 @@ static int vhost_net_open(struct inode *inode, struct file *f)
943 n = kvmalloc(sizeof *n, GFP_KERNEL | __GFP_RETRY_MAYFAIL); 945 n = kvmalloc(sizeof *n, GFP_KERNEL | __GFP_RETRY_MAYFAIL);
944 if (!n) 946 if (!n)
945 return -ENOMEM; 947 return -ENOMEM;
946 vqs = kmalloc(VHOST_NET_VQ_MAX * sizeof(*vqs), GFP_KERNEL); 948 vqs = kmalloc_array(VHOST_NET_VQ_MAX, sizeof(*vqs), GFP_KERNEL);
947 if (!vqs) { 949 if (!vqs) {
948 kvfree(n); 950 kvfree(n);
949 return -ENOMEM; 951 return -ENOMEM;
diff --git a/drivers/vhost/scsi.c b/drivers/vhost/scsi.c
index 7ad57094d736..17fcd3b2e686 100644
--- a/drivers/vhost/scsi.c
+++ b/drivers/vhost/scsi.c
@@ -1378,7 +1378,7 @@ static int vhost_scsi_open(struct inode *inode, struct file *f)
1378 goto err_vs; 1378 goto err_vs;
1379 } 1379 }
1380 1380
1381 vqs = kmalloc(VHOST_SCSI_MAX_VQ * sizeof(*vqs), GFP_KERNEL); 1381 vqs = kmalloc_array(VHOST_SCSI_MAX_VQ, sizeof(*vqs), GFP_KERNEL);
1382 if (!vqs) 1382 if (!vqs)
1383 goto err_vqs; 1383 goto err_vqs;
1384 1384
@@ -1685,22 +1685,25 @@ static int vhost_scsi_nexus_cb(struct se_portal_group *se_tpg,
1685 for (i = 0; i < VHOST_SCSI_DEFAULT_TAGS; i++) { 1685 for (i = 0; i < VHOST_SCSI_DEFAULT_TAGS; i++) {
1686 tv_cmd = &((struct vhost_scsi_cmd *)se_sess->sess_cmd_map)[i]; 1686 tv_cmd = &((struct vhost_scsi_cmd *)se_sess->sess_cmd_map)[i];
1687 1687
1688 tv_cmd->tvc_sgl = kzalloc(sizeof(struct scatterlist) * 1688 tv_cmd->tvc_sgl = kcalloc(VHOST_SCSI_PREALLOC_SGLS,
1689 VHOST_SCSI_PREALLOC_SGLS, GFP_KERNEL); 1689 sizeof(struct scatterlist),
1690 GFP_KERNEL);
1690 if (!tv_cmd->tvc_sgl) { 1691 if (!tv_cmd->tvc_sgl) {
1691 pr_err("Unable to allocate tv_cmd->tvc_sgl\n"); 1692 pr_err("Unable to allocate tv_cmd->tvc_sgl\n");
1692 goto out; 1693 goto out;
1693 } 1694 }
1694 1695
1695 tv_cmd->tvc_upages = kzalloc(sizeof(struct page *) * 1696 tv_cmd->tvc_upages = kcalloc(VHOST_SCSI_PREALLOC_UPAGES,
1696 VHOST_SCSI_PREALLOC_UPAGES, GFP_KERNEL); 1697 sizeof(struct page *),
1698 GFP_KERNEL);
1697 if (!tv_cmd->tvc_upages) { 1699 if (!tv_cmd->tvc_upages) {
1698 pr_err("Unable to allocate tv_cmd->tvc_upages\n"); 1700 pr_err("Unable to allocate tv_cmd->tvc_upages\n");
1699 goto out; 1701 goto out;
1700 } 1702 }
1701 1703
1702 tv_cmd->tvc_prot_sgl = kzalloc(sizeof(struct scatterlist) * 1704 tv_cmd->tvc_prot_sgl = kcalloc(VHOST_SCSI_PREALLOC_PROT_SGLS,
1703 VHOST_SCSI_PREALLOC_PROT_SGLS, GFP_KERNEL); 1705 sizeof(struct scatterlist),
1706 GFP_KERNEL);
1704 if (!tv_cmd->tvc_prot_sgl) { 1707 if (!tv_cmd->tvc_prot_sgl) {
1705 pr_err("Unable to allocate tv_cmd->tvc_prot_sgl\n"); 1708 pr_err("Unable to allocate tv_cmd->tvc_prot_sgl\n");
1706 goto out; 1709 goto out;
diff --git a/drivers/vhost/test.c b/drivers/vhost/test.c
index 906b8f0f19f7..40589850eb33 100644
--- a/drivers/vhost/test.c
+++ b/drivers/vhost/test.c
@@ -107,7 +107,7 @@ static int vhost_test_open(struct inode *inode, struct file *f)
107 107
108 if (!n) 108 if (!n)
109 return -ENOMEM; 109 return -ENOMEM;
110 vqs = kmalloc(VHOST_TEST_VQ_MAX * sizeof(*vqs), GFP_KERNEL); 110 vqs = kmalloc_array(VHOST_TEST_VQ_MAX, sizeof(*vqs), GFP_KERNEL);
111 if (!vqs) { 111 if (!vqs) {
112 kfree(n); 112 kfree(n);
113 return -ENOMEM; 113 return -ENOMEM;
diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c
index 895eaa25807c..ce8c95b6365b 100644
--- a/drivers/vhost/vhost.c
+++ b/drivers/vhost/vhost.c
@@ -385,10 +385,13 @@ static long vhost_dev_alloc_iovecs(struct vhost_dev *dev)
385 385
386 for (i = 0; i < dev->nvqs; ++i) { 386 for (i = 0; i < dev->nvqs; ++i) {
387 vq = dev->vqs[i]; 387 vq = dev->vqs[i];
388 vq->indirect = kmalloc(sizeof *vq->indirect * UIO_MAXIOV, 388 vq->indirect = kmalloc_array(UIO_MAXIOV,
389 GFP_KERNEL); 389 sizeof(*vq->indirect),
390 vq->log = kmalloc(sizeof *vq->log * UIO_MAXIOV, GFP_KERNEL); 390 GFP_KERNEL);
391 vq->heads = kmalloc(sizeof *vq->heads * UIO_MAXIOV, GFP_KERNEL); 391 vq->log = kmalloc_array(UIO_MAXIOV, sizeof(*vq->log),
392 GFP_KERNEL);
393 vq->heads = kmalloc_array(UIO_MAXIOV, sizeof(*vq->heads),
394 GFP_KERNEL);
392 if (!vq->indirect || !vq->log || !vq->heads) 395 if (!vq->indirect || !vq->log || !vq->heads)
393 goto err_nomem; 396 goto err_nomem;
394 } 397 }
@@ -1286,7 +1289,8 @@ static long vhost_set_memory(struct vhost_dev *d, struct vhost_memory __user *m)
1286 return -EOPNOTSUPP; 1289 return -EOPNOTSUPP;
1287 if (mem.nregions > max_mem_regions) 1290 if (mem.nregions > max_mem_regions)
1288 return -E2BIG; 1291 return -E2BIG;
1289 newmem = kvzalloc(size + mem.nregions * sizeof(*m->regions), GFP_KERNEL); 1292 newmem = kvzalloc(struct_size(newmem, regions, mem.nregions),
1293 GFP_KERNEL);
1290 if (!newmem) 1294 if (!newmem)
1291 return -ENOMEM; 1295 return -ENOMEM;
1292 1296
diff --git a/drivers/vhost/vringh.c b/drivers/vhost/vringh.c
index bb8971f2a634..a94d700a4503 100644
--- a/drivers/vhost/vringh.c
+++ b/drivers/vhost/vringh.c
@@ -191,7 +191,7 @@ static int resize_iovec(struct vringh_kiov *iov, gfp_t gfp)
191 if (flag) 191 if (flag)
192 new = krealloc(iov->iov, new_num * sizeof(struct iovec), gfp); 192 new = krealloc(iov->iov, new_num * sizeof(struct iovec), gfp);
193 else { 193 else {
194 new = kmalloc(new_num * sizeof(struct iovec), gfp); 194 new = kmalloc_array(new_num, sizeof(struct iovec), gfp);
195 if (new) { 195 if (new) {
196 memcpy(new, iov->iov, 196 memcpy(new, iov->iov,
197 iov->max_num * sizeof(struct iovec)); 197 iov->max_num * sizeof(struct iovec));
diff --git a/drivers/video/backlight/adp8860_bl.c b/drivers/video/backlight/adp8860_bl.c
index e7315bf14d60..16119bde9750 100644
--- a/drivers/video/backlight/adp8860_bl.c
+++ b/drivers/video/backlight/adp8860_bl.c
@@ -223,7 +223,7 @@ static int adp8860_led_probe(struct i2c_client *client)
223 struct led_info *cur_led; 223 struct led_info *cur_led;
224 int ret, i; 224 int ret, i;
225 225
226 led = devm_kzalloc(&client->dev, sizeof(*led) * pdata->num_leds, 226 led = devm_kcalloc(&client->dev, pdata->num_leds, sizeof(*led),
227 GFP_KERNEL); 227 GFP_KERNEL);
228 if (led == NULL) 228 if (led == NULL)
229 return -ENOMEM; 229 return -ENOMEM;
diff --git a/drivers/video/backlight/adp8870_bl.c b/drivers/video/backlight/adp8870_bl.c
index 058d1def2d1f..4fec9aa92d9b 100644
--- a/drivers/video/backlight/adp8870_bl.c
+++ b/drivers/video/backlight/adp8870_bl.c
@@ -246,7 +246,7 @@ static int adp8870_led_probe(struct i2c_client *client)
246 struct led_info *cur_led; 246 struct led_info *cur_led;
247 int ret, i; 247 int ret, i;
248 248
249 led = devm_kzalloc(&client->dev, pdata->num_leds * sizeof(*led), 249 led = devm_kcalloc(&client->dev, pdata->num_leds, sizeof(*led),
250 GFP_KERNEL); 250 GFP_KERNEL);
251 if (led == NULL) 251 if (led == NULL)
252 return -ENOMEM; 252 return -ENOMEM;
diff --git a/drivers/video/backlight/lp855x_bl.c b/drivers/video/backlight/lp855x_bl.c
index 939f057836e1..73612485ed07 100644
--- a/drivers/video/backlight/lp855x_bl.c
+++ b/drivers/video/backlight/lp855x_bl.c
@@ -374,7 +374,7 @@ static int lp855x_parse_dt(struct lp855x *lp)
374 struct device_node *child; 374 struct device_node *child;
375 int i = 0; 375 int i = 0;
376 376
377 rom = devm_kzalloc(dev, sizeof(*rom) * rom_length, GFP_KERNEL); 377 rom = devm_kcalloc(dev, rom_length, sizeof(*rom), GFP_KERNEL);
378 if (!rom) 378 if (!rom)
379 return -ENOMEM; 379 return -ENOMEM;
380 380
diff --git a/drivers/video/console/sticore.c b/drivers/video/console/sticore.c
index 08b822656846..ff45dca3ee46 100644
--- a/drivers/video/console/sticore.c
+++ b/drivers/video/console/sticore.c
@@ -649,7 +649,7 @@ static void *sti_bmode_font_raw(struct sti_cooked_font *f)
649 unsigned char *n, *p, *q; 649 unsigned char *n, *p, *q;
650 int size = f->raw->bytes_per_char*256+sizeof(struct sti_rom_font); 650 int size = f->raw->bytes_per_char*256+sizeof(struct sti_rom_font);
651 651
652 n = kzalloc(4*size, STI_LOWMEM); 652 n = kcalloc(4, size, STI_LOWMEM);
653 if (!n) 653 if (!n)
654 return NULL; 654 return NULL;
655 p = n + 3; 655 p = n + 3;
diff --git a/drivers/video/fbdev/au1100fb.c b/drivers/video/fbdev/au1100fb.c
index 7c9a672e9811..d555a78df5c6 100644
--- a/drivers/video/fbdev/au1100fb.c
+++ b/drivers/video/fbdev/au1100fb.c
@@ -501,7 +501,7 @@ static int au1100fb_drv_probe(struct platform_device *dev)
501 fbdev->info.fix = au1100fb_fix; 501 fbdev->info.fix = au1100fb_fix;
502 502
503 fbdev->info.pseudo_palette = 503 fbdev->info.pseudo_palette =
504 devm_kzalloc(&dev->dev, sizeof(u32) * 16, GFP_KERNEL); 504 devm_kcalloc(&dev->dev, 16, sizeof(u32), GFP_KERNEL);
505 if (!fbdev->info.pseudo_palette) 505 if (!fbdev->info.pseudo_palette)
506 return -ENOMEM; 506 return -ENOMEM;
507 507
diff --git a/drivers/video/fbdev/broadsheetfb.c b/drivers/video/fbdev/broadsheetfb.c
index 9f9a7bef1ff6..d6ba348deb9f 100644
--- a/drivers/video/fbdev/broadsheetfb.c
+++ b/drivers/video/fbdev/broadsheetfb.c
@@ -617,7 +617,7 @@ static int broadsheet_spiflash_rewrite_sector(struct broadsheetfb_par *par,
617 int tail_start_addr; 617 int tail_start_addr;
618 int start_sector_addr; 618 int start_sector_addr;
619 619
620 sector_buffer = kzalloc(sizeof(char)*sector_size, GFP_KERNEL); 620 sector_buffer = kzalloc(sector_size, GFP_KERNEL);
621 if (!sector_buffer) 621 if (!sector_buffer)
622 return -ENOMEM; 622 return -ENOMEM;
623 623
diff --git a/drivers/video/fbdev/core/bitblit.c b/drivers/video/fbdev/core/bitblit.c
index 790900d646c0..ca935c09a261 100644
--- a/drivers/video/fbdev/core/bitblit.c
+++ b/drivers/video/fbdev/core/bitblit.c
@@ -269,7 +269,7 @@ static void bit_cursor(struct vc_data *vc, struct fb_info *info, int mode,
269 if (attribute) { 269 if (attribute) {
270 u8 *dst; 270 u8 *dst;
271 271
272 dst = kmalloc(w * vc->vc_font.height, GFP_ATOMIC); 272 dst = kmalloc_array(w, vc->vc_font.height, GFP_ATOMIC);
273 if (!dst) 273 if (!dst)
274 return; 274 return;
275 kfree(ops->cursor_data); 275 kfree(ops->cursor_data);
@@ -312,7 +312,7 @@ static void bit_cursor(struct vc_data *vc, struct fb_info *info, int mode,
312 vc->vc_cursor_type != ops->p->cursor_shape || 312 vc->vc_cursor_type != ops->p->cursor_shape ||
313 ops->cursor_state.mask == NULL || 313 ops->cursor_state.mask == NULL ||
314 ops->cursor_reset) { 314 ops->cursor_reset) {
315 char *mask = kmalloc(w*vc->vc_font.height, GFP_ATOMIC); 315 char *mask = kmalloc_array(w, vc->vc_font.height, GFP_ATOMIC);
316 int cur_height, size, i = 0; 316 int cur_height, size, i = 0;
317 u8 msk = 0xff; 317 u8 msk = 0xff;
318 318
diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c
index 3e330e0f56ed..c910e74d46ff 100644
--- a/drivers/video/fbdev/core/fbcon.c
+++ b/drivers/video/fbdev/core/fbcon.c
@@ -591,7 +591,8 @@ static void fbcon_prepare_logo(struct vc_data *vc, struct fb_info *info,
591 if (scr_readw(r) != vc->vc_video_erase_char) 591 if (scr_readw(r) != vc->vc_video_erase_char)
592 break; 592 break;
593 if (r != q && new_rows >= rows + logo_lines) { 593 if (r != q && new_rows >= rows + logo_lines) {
594 save = kmalloc(logo_lines * new_cols * 2, GFP_KERNEL); 594 save = kmalloc(array3_size(logo_lines, new_cols, 2),
595 GFP_KERNEL);
595 if (save) { 596 if (save) {
596 int i = cols < new_cols ? cols : new_cols; 597 int i = cols < new_cols ? cols : new_cols;
597 scr_memsetw(save, erase, logo_lines * new_cols * 2); 598 scr_memsetw(save, erase, logo_lines * new_cols * 2);
diff --git a/drivers/video/fbdev/core/fbcon_ccw.c b/drivers/video/fbdev/core/fbcon_ccw.c
index 37a8b0b22566..dfa9a8aa4509 100644
--- a/drivers/video/fbdev/core/fbcon_ccw.c
+++ b/drivers/video/fbdev/core/fbcon_ccw.c
@@ -258,7 +258,7 @@ static void ccw_cursor(struct vc_data *vc, struct fb_info *info, int mode,
258 if (attribute) { 258 if (attribute) {
259 u8 *dst; 259 u8 *dst;
260 260
261 dst = kmalloc(w * vc->vc_font.width, GFP_ATOMIC); 261 dst = kmalloc_array(w, vc->vc_font.width, GFP_ATOMIC);
262 if (!dst) 262 if (!dst)
263 return; 263 return;
264 kfree(ops->cursor_data); 264 kfree(ops->cursor_data);
@@ -304,14 +304,15 @@ static void ccw_cursor(struct vc_data *vc, struct fb_info *info, int mode,
304 vc->vc_cursor_type != ops->p->cursor_shape || 304 vc->vc_cursor_type != ops->p->cursor_shape ||
305 ops->cursor_state.mask == NULL || 305 ops->cursor_state.mask == NULL ||
306 ops->cursor_reset) { 306 ops->cursor_reset) {
307 char *tmp, *mask = kmalloc(w*vc->vc_font.width, GFP_ATOMIC); 307 char *tmp, *mask = kmalloc_array(w, vc->vc_font.width,
308 GFP_ATOMIC);
308 int cur_height, size, i = 0; 309 int cur_height, size, i = 0;
309 int width = (vc->vc_font.width + 7)/8; 310 int width = (vc->vc_font.width + 7)/8;
310 311
311 if (!mask) 312 if (!mask)
312 return; 313 return;
313 314
314 tmp = kmalloc(width * vc->vc_font.height, GFP_ATOMIC); 315 tmp = kmalloc_array(width, vc->vc_font.height, GFP_ATOMIC);
315 316
316 if (!tmp) { 317 if (!tmp) {
317 kfree(mask); 318 kfree(mask);
diff --git a/drivers/video/fbdev/core/fbcon_cw.c b/drivers/video/fbdev/core/fbcon_cw.c
index 1888f8c866e8..ce08251bfd38 100644
--- a/drivers/video/fbdev/core/fbcon_cw.c
+++ b/drivers/video/fbdev/core/fbcon_cw.c
@@ -241,7 +241,7 @@ static void cw_cursor(struct vc_data *vc, struct fb_info *info, int mode,
241 if (attribute) { 241 if (attribute) {
242 u8 *dst; 242 u8 *dst;
243 243
244 dst = kmalloc(w * vc->vc_font.width, GFP_ATOMIC); 244 dst = kmalloc_array(w, vc->vc_font.width, GFP_ATOMIC);
245 if (!dst) 245 if (!dst)
246 return; 246 return;
247 kfree(ops->cursor_data); 247 kfree(ops->cursor_data);
@@ -287,14 +287,15 @@ static void cw_cursor(struct vc_data *vc, struct fb_info *info, int mode,
287 vc->vc_cursor_type != ops->p->cursor_shape || 287 vc->vc_cursor_type != ops->p->cursor_shape ||
288 ops->cursor_state.mask == NULL || 288 ops->cursor_state.mask == NULL ||
289 ops->cursor_reset) { 289 ops->cursor_reset) {
290 char *tmp, *mask = kmalloc(w*vc->vc_font.width, GFP_ATOMIC); 290 char *tmp, *mask = kmalloc_array(w, vc->vc_font.width,
291 GFP_ATOMIC);
291 int cur_height, size, i = 0; 292 int cur_height, size, i = 0;
292 int width = (vc->vc_font.width + 7)/8; 293 int width = (vc->vc_font.width + 7)/8;
293 294
294 if (!mask) 295 if (!mask)
295 return; 296 return;
296 297
297 tmp = kmalloc(width * vc->vc_font.height, GFP_ATOMIC); 298 tmp = kmalloc_array(width, vc->vc_font.height, GFP_ATOMIC);
298 299
299 if (!tmp) { 300 if (!tmp) {
300 kfree(mask); 301 kfree(mask);
diff --git a/drivers/video/fbdev/core/fbcon_rotate.c b/drivers/video/fbdev/core/fbcon_rotate.c
index 8a51e4d95cc5..c0d445294aa7 100644
--- a/drivers/video/fbdev/core/fbcon_rotate.c
+++ b/drivers/video/fbdev/core/fbcon_rotate.c
@@ -46,7 +46,7 @@ static int fbcon_rotate_font(struct fb_info *info, struct vc_data *vc)
46 info->fbops->fb_sync(info); 46 info->fbops->fb_sync(info);
47 47
48 if (ops->fd_size < d_cellsize * len) { 48 if (ops->fd_size < d_cellsize * len) {
49 dst = kmalloc(d_cellsize * len, GFP_KERNEL); 49 dst = kmalloc_array(len, d_cellsize, GFP_KERNEL);
50 50
51 if (dst == NULL) { 51 if (dst == NULL) {
52 err = -ENOMEM; 52 err = -ENOMEM;
diff --git a/drivers/video/fbdev/core/fbcon_ud.c b/drivers/video/fbdev/core/fbcon_ud.c
index f98eee263597..1936afc78fec 100644
--- a/drivers/video/fbdev/core/fbcon_ud.c
+++ b/drivers/video/fbdev/core/fbcon_ud.c
@@ -289,7 +289,7 @@ static void ud_cursor(struct vc_data *vc, struct fb_info *info, int mode,
289 if (attribute) { 289 if (attribute) {
290 u8 *dst; 290 u8 *dst;
291 291
292 dst = kmalloc(w * vc->vc_font.height, GFP_ATOMIC); 292 dst = kmalloc_array(w, vc->vc_font.height, GFP_ATOMIC);
293 if (!dst) 293 if (!dst)
294 return; 294 return;
295 kfree(ops->cursor_data); 295 kfree(ops->cursor_data);
@@ -335,7 +335,7 @@ static void ud_cursor(struct vc_data *vc, struct fb_info *info, int mode,
335 vc->vc_cursor_type != ops->p->cursor_shape || 335 vc->vc_cursor_type != ops->p->cursor_shape ||
336 ops->cursor_state.mask == NULL || 336 ops->cursor_state.mask == NULL ||
337 ops->cursor_reset) { 337 ops->cursor_reset) {
338 char *mask = kmalloc(w*vc->vc_font.height, GFP_ATOMIC); 338 char *mask = kmalloc_array(w, vc->vc_font.height, GFP_ATOMIC);
339 int cur_height, size, i = 0; 339 int cur_height, size, i = 0;
340 u8 msk = 0xff; 340 u8 msk = 0xff;
341 341
diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c
index 924d0730ffe2..609438d2465b 100644
--- a/drivers/video/fbdev/core/fbmem.c
+++ b/drivers/video/fbdev/core/fbmem.c
@@ -489,7 +489,8 @@ static int fb_show_logo_line(struct fb_info *info, int rotate,
489 } 489 }
490 490
491 if (fb_logo.depth <= 4) { 491 if (fb_logo.depth <= 4) {
492 logo_new = kmalloc(logo->width * logo->height, GFP_KERNEL); 492 logo_new = kmalloc_array(logo->width, logo->height,
493 GFP_KERNEL);
493 if (logo_new == NULL) { 494 if (logo_new == NULL) {
494 kfree(palette); 495 kfree(palette);
495 if (saved_pseudo_palette) 496 if (saved_pseudo_palette)
@@ -506,8 +507,8 @@ static int fb_show_logo_line(struct fb_info *info, int rotate,
506 image.height = logo->height; 507 image.height = logo->height;
507 508
508 if (rotate) { 509 if (rotate) {
509 logo_rotate = kmalloc(logo->width * 510 logo_rotate = kmalloc_array(logo->width, logo->height,
510 logo->height, GFP_KERNEL); 511 GFP_KERNEL);
511 if (logo_rotate) 512 if (logo_rotate)
512 fb_rotate_logo(info, logo_rotate, &image, rotate); 513 fb_rotate_logo(info, logo_rotate, &image, rotate);
513 } 514 }
diff --git a/drivers/video/fbdev/core/fbmon.c b/drivers/video/fbdev/core/fbmon.c
index 2b2d67328514..852d86c1c527 100644
--- a/drivers/video/fbdev/core/fbmon.c
+++ b/drivers/video/fbdev/core/fbmon.c
@@ -620,7 +620,7 @@ static struct fb_videomode *fb_create_modedb(unsigned char *edid, int *dbsize,
620 int num = 0, i, first = 1; 620 int num = 0, i, first = 1;
621 int ver, rev; 621 int ver, rev;
622 622
623 mode = kzalloc(50 * sizeof(struct fb_videomode), GFP_KERNEL); 623 mode = kcalloc(50, sizeof(struct fb_videomode), GFP_KERNEL);
624 if (mode == NULL) 624 if (mode == NULL)
625 return NULL; 625 return NULL;
626 626
@@ -671,7 +671,7 @@ static struct fb_videomode *fb_create_modedb(unsigned char *edid, int *dbsize,
671 } 671 }
672 672
673 *dbsize = num; 673 *dbsize = num;
674 m = kmalloc(num * sizeof(struct fb_videomode), GFP_KERNEL); 674 m = kmalloc_array(num, sizeof(struct fb_videomode), GFP_KERNEL);
675 if (!m) 675 if (!m)
676 return mode; 676 return mode;
677 memmove(m, mode, num * sizeof(struct fb_videomode)); 677 memmove(m, mode, num * sizeof(struct fb_videomode));
@@ -1055,8 +1055,9 @@ void fb_edid_add_monspecs(unsigned char *edid, struct fb_monspecs *specs)
1055 if (!(num + svd_n)) 1055 if (!(num + svd_n))
1056 return; 1056 return;
1057 1057
1058 m = kzalloc((specs->modedb_len + num + svd_n) * 1058 m = kcalloc(specs->modedb_len + num + svd_n,
1059 sizeof(struct fb_videomode), GFP_KERNEL); 1059 sizeof(struct fb_videomode),
1060 GFP_KERNEL);
1060 1061
1061 if (!m) 1062 if (!m)
1062 return; 1063 return;
diff --git a/drivers/video/fbdev/imxfb.c b/drivers/video/fbdev/imxfb.c
index ba82f97fb42b..c4eb8661f751 100644
--- a/drivers/video/fbdev/imxfb.c
+++ b/drivers/video/fbdev/imxfb.c
@@ -662,7 +662,7 @@ static int imxfb_init_fbinfo(struct platform_device *pdev)
662 662
663 pr_debug("%s\n",__func__); 663 pr_debug("%s\n",__func__);
664 664
665 info->pseudo_palette = kmalloc(sizeof(u32) * 16, GFP_KERNEL); 665 info->pseudo_palette = kmalloc_array(16, sizeof(u32), GFP_KERNEL);
666 if (!info->pseudo_palette) 666 if (!info->pseudo_palette)
667 return -ENOMEM; 667 return -ENOMEM;
668 668
diff --git a/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c b/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c
index fe92eed6da70..8dd296d257dd 100644
--- a/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c
+++ b/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c
@@ -245,7 +245,7 @@ static void mb86290fb_imageblit(struct fb_info *info,
245 return; 245 return;
246 } 246 }
247 247
248 cmd = kmalloc(cmdlen * 4, GFP_DMA); 248 cmd = kmalloc_array(cmdlen, 4, GFP_DMA);
249 if (!cmd) 249 if (!cmd)
250 return cfb_imageblit(info, image); 250 return cfb_imageblit(info, image);
251 cmdfn(cmd, step, dx, dy, width, height, fgcolor, bgcolor, image, info); 251 cmdfn(cmd, step, dx, dy, width, height, fgcolor, bgcolor, image, info);
diff --git a/drivers/video/fbdev/mmp/fb/mmpfb.c b/drivers/video/fbdev/mmp/fb/mmpfb.c
index 92279e02dd94..f27697e07c55 100644
--- a/drivers/video/fbdev/mmp/fb/mmpfb.c
+++ b/drivers/video/fbdev/mmp/fb/mmpfb.c
@@ -493,8 +493,8 @@ static int modes_setup(struct mmpfb_info *fbi)
493 return 0; 493 return 0;
494 } 494 }
495 /* put videomode list to info structure */ 495 /* put videomode list to info structure */
496 videomodes = kzalloc(sizeof(struct fb_videomode) * videomode_num, 496 videomodes = kcalloc(videomode_num, sizeof(struct fb_videomode),
497 GFP_KERNEL); 497 GFP_KERNEL);
498 if (!videomodes) { 498 if (!videomodes) {
499 dev_err(fbi->dev, "can't malloc video modes\n"); 499 dev_err(fbi->dev, "can't malloc video modes\n");
500 return -ENOMEM; 500 return -ENOMEM;
diff --git a/drivers/video/fbdev/mxsfb.c b/drivers/video/fbdev/mxsfb.c
index 246bea3a7d9b..12c8bd1d24d5 100644
--- a/drivers/video/fbdev/mxsfb.c
+++ b/drivers/video/fbdev/mxsfb.c
@@ -931,7 +931,7 @@ static int mxsfb_probe(struct platform_device *pdev)
931 if (IS_ERR(host->reg_lcd)) 931 if (IS_ERR(host->reg_lcd))
932 host->reg_lcd = NULL; 932 host->reg_lcd = NULL;
933 933
934 fb_info->pseudo_palette = devm_kzalloc(&pdev->dev, sizeof(u32) * 16, 934 fb_info->pseudo_palette = devm_kcalloc(&pdev->dev, 16, sizeof(u32),
935 GFP_KERNEL); 935 GFP_KERNEL);
936 if (!fb_info->pseudo_palette) { 936 if (!fb_info->pseudo_palette) {
937 ret = -ENOMEM; 937 ret = -ENOMEM;
diff --git a/drivers/video/fbdev/nvidia/nvidia.c b/drivers/video/fbdev/nvidia/nvidia.c
index 418a2d0d06a9..2e50120bcfae 100644
--- a/drivers/video/fbdev/nvidia/nvidia.c
+++ b/drivers/video/fbdev/nvidia/nvidia.c
@@ -566,7 +566,7 @@ static int nvidiafb_cursor(struct fb_info *info, struct fb_cursor *cursor)
566 u8 *msk = (u8 *) cursor->mask; 566 u8 *msk = (u8 *) cursor->mask;
567 u8 *src; 567 u8 *src;
568 568
569 src = kmalloc(s_pitch * cursor->image.height, GFP_ATOMIC); 569 src = kmalloc_array(s_pitch, cursor->image.height, GFP_ATOMIC);
570 570
571 if (src) { 571 if (src) {
572 switch (cursor->rop) { 572 switch (cursor->rop) {
diff --git a/drivers/video/fbdev/omap2/omapfb/dss/manager.c b/drivers/video/fbdev/omap2/omapfb/dss/manager.c
index 69f86d2cc274..d21c641e1f3c 100644
--- a/drivers/video/fbdev/omap2/omapfb/dss/manager.c
+++ b/drivers/video/fbdev/omap2/omapfb/dss/manager.c
@@ -42,8 +42,8 @@ int dss_init_overlay_managers(void)
42 42
43 num_managers = dss_feat_get_num_mgrs(); 43 num_managers = dss_feat_get_num_mgrs();
44 44
45 managers = kzalloc(sizeof(struct omap_overlay_manager) * num_managers, 45 managers = kcalloc(num_managers, sizeof(struct omap_overlay_manager),
46 GFP_KERNEL); 46 GFP_KERNEL);
47 47
48 BUG_ON(managers == NULL); 48 BUG_ON(managers == NULL);
49 49
diff --git a/drivers/video/fbdev/omap2/omapfb/dss/overlay.c b/drivers/video/fbdev/omap2/omapfb/dss/overlay.c
index d6c5d75d2ef8..be17a4785a5e 100644
--- a/drivers/video/fbdev/omap2/omapfb/dss/overlay.c
+++ b/drivers/video/fbdev/omap2/omapfb/dss/overlay.c
@@ -59,8 +59,8 @@ void dss_init_overlays(struct platform_device *pdev)
59 59
60 num_overlays = dss_feat_get_num_ovls(); 60 num_overlays = dss_feat_get_num_ovls();
61 61
62 overlays = kzalloc(sizeof(struct omap_overlay) * num_overlays, 62 overlays = kcalloc(num_overlays, sizeof(struct omap_overlay),
63 GFP_KERNEL); 63 GFP_KERNEL);
64 64
65 BUG_ON(overlays == NULL); 65 BUG_ON(overlays == NULL);
66 66
diff --git a/drivers/video/fbdev/omap2/omapfb/vrfb.c b/drivers/video/fbdev/omap2/omapfb/vrfb.c
index f346b02eee1d..f355ecfac3b1 100644
--- a/drivers/video/fbdev/omap2/omapfb/vrfb.c
+++ b/drivers/video/fbdev/omap2/omapfb/vrfb.c
@@ -359,8 +359,8 @@ static int __init vrfb_probe(struct platform_device *pdev)
359 359
360 num_ctxs = pdev->num_resources - 1; 360 num_ctxs = pdev->num_resources - 1;
361 361
362 ctxs = devm_kzalloc(&pdev->dev, 362 ctxs = devm_kcalloc(&pdev->dev,
363 sizeof(struct vrfb_ctx) * num_ctxs, 363 num_ctxs, sizeof(struct vrfb_ctx),
364 GFP_KERNEL); 364 GFP_KERNEL);
365 365
366 if (!ctxs) 366 if (!ctxs)
diff --git a/drivers/video/fbdev/pvr2fb.c b/drivers/video/fbdev/pvr2fb.c
index a582d3ae7ac1..8a53d1de611d 100644
--- a/drivers/video/fbdev/pvr2fb.c
+++ b/drivers/video/fbdev/pvr2fb.c
@@ -682,7 +682,7 @@ static ssize_t pvr2fb_write(struct fb_info *info, const char *buf,
682 682
683 nr_pages = (count + PAGE_SIZE - 1) >> PAGE_SHIFT; 683 nr_pages = (count + PAGE_SIZE - 1) >> PAGE_SHIFT;
684 684
685 pages = kmalloc(nr_pages * sizeof(struct page *), GFP_KERNEL); 685 pages = kmalloc_array(nr_pages, sizeof(struct page *), GFP_KERNEL);
686 if (!pages) 686 if (!pages)
687 return -ENOMEM; 687 return -ENOMEM;
688 688
diff --git a/drivers/video/fbdev/riva/fbdev.c b/drivers/video/fbdev/riva/fbdev.c
index ff8282374f37..cc242ba057d3 100644
--- a/drivers/video/fbdev/riva/fbdev.c
+++ b/drivers/video/fbdev/riva/fbdev.c
@@ -1615,7 +1615,7 @@ static int rivafb_cursor(struct fb_info *info, struct fb_cursor *cursor)
1615 u8 *msk = (u8 *) cursor->mask; 1615 u8 *msk = (u8 *) cursor->mask;
1616 u8 *src; 1616 u8 *src;
1617 1617
1618 src = kmalloc(s_pitch * cursor->image.height, GFP_ATOMIC); 1618 src = kmalloc_array(s_pitch, cursor->image.height, GFP_ATOMIC);
1619 1619
1620 if (src) { 1620 if (src) {
1621 switch (cursor->rop) { 1621 switch (cursor->rop) {
diff --git a/drivers/video/fbdev/uvesafb.c b/drivers/video/fbdev/uvesafb.c
index 73676eb0244a..440a6636d8f0 100644
--- a/drivers/video/fbdev/uvesafb.c
+++ b/drivers/video/fbdev/uvesafb.c
@@ -486,8 +486,9 @@ static int uvesafb_vbe_getmodes(struct uvesafb_ktask *task,
486 mode++; 486 mode++;
487 } 487 }
488 488
489 par->vbe_modes = kzalloc(sizeof(struct vbe_mode_ib) * 489 par->vbe_modes = kcalloc(par->vbe_modes_cnt,
490 par->vbe_modes_cnt, GFP_KERNEL); 490 sizeof(struct vbe_mode_ib),
491 GFP_KERNEL);
491 if (!par->vbe_modes) 492 if (!par->vbe_modes)
492 return -ENOMEM; 493 return -ENOMEM;
493 494
@@ -858,7 +859,7 @@ static int uvesafb_vbe_init_mode(struct fb_info *info)
858 * Convert the modelist into a modedb so that we can use it with 859 * Convert the modelist into a modedb so that we can use it with
859 * fb_find_mode(). 860 * fb_find_mode().
860 */ 861 */
861 mode = kzalloc(i * sizeof(*mode), GFP_KERNEL); 862 mode = kcalloc(i, sizeof(*mode), GFP_KERNEL);
862 if (mode) { 863 if (mode) {
863 i = 0; 864 i = 0;
864 list_for_each(pos, &info->modelist) { 865 list_for_each(pos, &info->modelist) {
@@ -1044,7 +1045,8 @@ static int uvesafb_setcmap(struct fb_cmap *cmap, struct fb_info *info)
1044 info->cmap.len || cmap->start < info->cmap.start) 1045 info->cmap.len || cmap->start < info->cmap.start)
1045 return -EINVAL; 1046 return -EINVAL;
1046 1047
1047 entries = kmalloc(sizeof(*entries) * cmap->len, GFP_KERNEL); 1048 entries = kmalloc_array(cmap->len, sizeof(*entries),
1049 GFP_KERNEL);
1048 if (!entries) 1050 if (!entries)
1049 return -ENOMEM; 1051 return -ENOMEM;
1050 1052
diff --git a/drivers/video/fbdev/via/viafbdev.c b/drivers/video/fbdev/via/viafbdev.c
index 9b45125988fb..52f577b0669b 100644
--- a/drivers/video/fbdev/via/viafbdev.c
+++ b/drivers/video/fbdev/via/viafbdev.c
@@ -596,7 +596,8 @@ static int viafb_ioctl(struct fb_info *info, u_int cmd, u_long arg)
596 break; 596 break;
597 597
598 case VIAFB_GET_GAMMA_LUT: 598 case VIAFB_GET_GAMMA_LUT:
599 viafb_gamma_table = kmalloc(256 * sizeof(u32), GFP_KERNEL); 599 viafb_gamma_table = kmalloc_array(256, sizeof(u32),
600 GFP_KERNEL);
600 if (!viafb_gamma_table) 601 if (!viafb_gamma_table)
601 return -ENOMEM; 602 return -ENOMEM;
602 viafb_get_gamma_table(viafb_gamma_table); 603 viafb_get_gamma_table(viafb_gamma_table);
diff --git a/drivers/video/fbdev/w100fb.c b/drivers/video/fbdev/w100fb.c
index 035ff6e02894..696106ecdff0 100644
--- a/drivers/video/fbdev/w100fb.c
+++ b/drivers/video/fbdev/w100fb.c
@@ -693,7 +693,8 @@ int w100fb_probe(struct platform_device *pdev)
693 goto out; 693 goto out;
694 } 694 }
695 695
696 info->pseudo_palette = kmalloc(sizeof (u32) * MAX_PALETTES, GFP_KERNEL); 696 info->pseudo_palette = kmalloc_array(MAX_PALETTES, sizeof(u32),
697 GFP_KERNEL);
697 if (!info->pseudo_palette) { 698 if (!info->pseudo_palette) {
698 err = -ENOMEM; 699 err = -ENOMEM;
699 goto out; 700 goto out;
diff --git a/drivers/video/fbdev/xen-fbfront.c b/drivers/video/fbdev/xen-fbfront.c
index 46f63960fa9e..6a4bbc9e1fb0 100644
--- a/drivers/video/fbdev/xen-fbfront.c
+++ b/drivers/video/fbdev/xen-fbfront.c
@@ -412,7 +412,7 @@ static int xenfb_probe(struct xenbus_device *dev,
412 412
413 info->nr_pages = (fb_size + PAGE_SIZE - 1) >> PAGE_SHIFT; 413 info->nr_pages = (fb_size + PAGE_SIZE - 1) >> PAGE_SHIFT;
414 414
415 info->gfns = vmalloc(sizeof(unsigned long) * info->nr_pages); 415 info->gfns = vmalloc(array_size(sizeof(unsigned long), info->nr_pages));
416 if (!info->gfns) 416 if (!info->gfns)
417 goto error_nomem; 417 goto error_nomem;
418 418
diff --git a/drivers/video/of_display_timing.c b/drivers/video/of_display_timing.c
index 83b8963c9657..5244e93ceafc 100644
--- a/drivers/video/of_display_timing.c
+++ b/drivers/video/of_display_timing.c
@@ -181,8 +181,9 @@ struct display_timings *of_get_display_timings(const struct device_node *np)
181 goto entryfail; 181 goto entryfail;
182 } 182 }
183 183
184 disp->timings = kzalloc(sizeof(struct display_timing *) * 184 disp->timings = kcalloc(disp->num_timings,
185 disp->num_timings, GFP_KERNEL); 185 sizeof(struct display_timing *),
186 GFP_KERNEL);
186 if (!disp->timings) { 187 if (!disp->timings) {
187 pr_err("%pOF: could not allocate timings array\n", np); 188 pr_err("%pOF: could not allocate timings array\n", np);
188 goto entryfail; 189 goto entryfail;
diff --git a/drivers/virt/fsl_hypervisor.c b/drivers/virt/fsl_hypervisor.c
index 4e05d7f711fe..8ba726e600e9 100644
--- a/drivers/virt/fsl_hypervisor.c
+++ b/drivers/virt/fsl_hypervisor.c
@@ -223,7 +223,7 @@ static long ioctl_memcpy(struct fsl_hv_ioctl_memcpy __user *p)
223 * 'pages' is an array of struct page pointers that's initialized by 223 * 'pages' is an array of struct page pointers that's initialized by
224 * get_user_pages(). 224 * get_user_pages().
225 */ 225 */
226 pages = kzalloc(num_pages * sizeof(struct page *), GFP_KERNEL); 226 pages = kcalloc(num_pages, sizeof(struct page *), GFP_KERNEL);
227 if (!pages) { 227 if (!pages) {
228 pr_debug("fsl-hv: could not allocate page list\n"); 228 pr_debug("fsl-hv: could not allocate page list\n");
229 return -ENOMEM; 229 return -ENOMEM;
diff --git a/drivers/virt/vboxguest/vboxguest_core.c b/drivers/virt/vboxguest/vboxguest_core.c
index 2f3856a95856..3093655c7b92 100644
--- a/drivers/virt/vboxguest/vboxguest_core.c
+++ b/drivers/virt/vboxguest/vboxguest_core.c
@@ -69,7 +69,7 @@ static void vbg_guest_mappings_init(struct vbg_dev *gdev)
69 /* Add 4M so that we can align the vmap to 4MiB as the host requires. */ 69 /* Add 4M so that we can align the vmap to 4MiB as the host requires. */
70 size = PAGE_ALIGN(req->hypervisor_size) + SZ_4M; 70 size = PAGE_ALIGN(req->hypervisor_size) + SZ_4M;
71 71
72 pages = kmalloc(sizeof(*pages) * (size >> PAGE_SHIFT), GFP_KERNEL); 72 pages = kmalloc_array(size >> PAGE_SHIFT, sizeof(*pages), GFP_KERNEL);
73 if (!pages) 73 if (!pages)
74 goto out; 74 goto out;
75 75
@@ -262,8 +262,9 @@ static int vbg_balloon_inflate(struct vbg_dev *gdev, u32 chunk_idx)
262 struct page **pages; 262 struct page **pages;
263 int i, rc, ret; 263 int i, rc, ret;
264 264
265 pages = kmalloc(sizeof(*pages) * VMMDEV_MEMORY_BALLOON_CHUNK_PAGES, 265 pages = kmalloc_array(VMMDEV_MEMORY_BALLOON_CHUNK_PAGES,
266 GFP_KERNEL | __GFP_NOWARN); 266 sizeof(*pages),
267 GFP_KERNEL | __GFP_NOWARN);
267 if (!pages) 268 if (!pages)
268 return -ENOMEM; 269 return -ENOMEM;
269 270
diff --git a/drivers/virtio/virtio_pci_common.c b/drivers/virtio/virtio_pci_common.c
index 48d4d1cf1cb6..b563a4499cc8 100644
--- a/drivers/virtio/virtio_pci_common.c
+++ b/drivers/virtio/virtio_pci_common.c
@@ -113,12 +113,13 @@ static int vp_request_msix_vectors(struct virtio_device *vdev, int nvectors,
113 113
114 vp_dev->msix_vectors = nvectors; 114 vp_dev->msix_vectors = nvectors;
115 115
116 vp_dev->msix_names = kmalloc(nvectors * sizeof *vp_dev->msix_names, 116 vp_dev->msix_names = kmalloc_array(nvectors,
117 GFP_KERNEL); 117 sizeof(*vp_dev->msix_names),
118 GFP_KERNEL);
118 if (!vp_dev->msix_names) 119 if (!vp_dev->msix_names)
119 goto error; 120 goto error;
120 vp_dev->msix_affinity_masks 121 vp_dev->msix_affinity_masks
121 = kzalloc(nvectors * sizeof *vp_dev->msix_affinity_masks, 122 = kcalloc(nvectors, sizeof(*vp_dev->msix_affinity_masks),
122 GFP_KERNEL); 123 GFP_KERNEL);
123 if (!vp_dev->msix_affinity_masks) 124 if (!vp_dev->msix_affinity_masks)
124 goto error; 125 goto error;
diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c
index 21d464a29cf8..814b395007b2 100644
--- a/drivers/virtio/virtio_ring.c
+++ b/drivers/virtio/virtio_ring.c
@@ -247,7 +247,7 @@ static struct vring_desc *alloc_indirect(struct virtqueue *_vq,
247 */ 247 */
248 gfp &= ~__GFP_HIGHMEM; 248 gfp &= ~__GFP_HIGHMEM;
249 249
250 desc = kmalloc(total_sg * sizeof(struct vring_desc), gfp); 250 desc = kmalloc_array(total_sg, sizeof(struct vring_desc), gfp);
251 if (!desc) 251 if (!desc)
252 return NULL; 252 return NULL;
253 253
diff --git a/drivers/xen/arm-device.c b/drivers/xen/arm-device.c
index 85dd20e05726..3e789c77f568 100644
--- a/drivers/xen/arm-device.c
+++ b/drivers/xen/arm-device.c
@@ -70,9 +70,9 @@ static int xen_map_device_mmio(const struct resource *resources,
70 if ((resource_type(r) != IORESOURCE_MEM) || (nr == 0)) 70 if ((resource_type(r) != IORESOURCE_MEM) || (nr == 0))
71 continue; 71 continue;
72 72
73 gpfns = kzalloc(sizeof(xen_pfn_t) * nr, GFP_KERNEL); 73 gpfns = kcalloc(nr, sizeof(xen_pfn_t), GFP_KERNEL);
74 idxs = kzalloc(sizeof(xen_ulong_t) * nr, GFP_KERNEL); 74 idxs = kcalloc(nr, sizeof(xen_ulong_t), GFP_KERNEL);
75 errs = kzalloc(sizeof(int) * nr, GFP_KERNEL); 75 errs = kcalloc(nr, sizeof(int), GFP_KERNEL);
76 if (!gpfns || !idxs || !errs) { 76 if (!gpfns || !idxs || !errs) {
77 kfree(gpfns); 77 kfree(gpfns);
78 kfree(idxs); 78 kfree(idxs);
diff --git a/drivers/xen/evtchn.c b/drivers/xen/evtchn.c
index 8cac07ab60ab..6d1a5e58968f 100644
--- a/drivers/xen/evtchn.c
+++ b/drivers/xen/evtchn.c
@@ -322,7 +322,7 @@ static int evtchn_resize_ring(struct per_user_data *u)
322 else 322 else
323 new_size = 2 * u->ring_size; 323 new_size = 2 * u->ring_size;
324 324
325 new_ring = kvmalloc(new_size * sizeof(*new_ring), GFP_KERNEL); 325 new_ring = kvmalloc_array(new_size, sizeof(*new_ring), GFP_KERNEL);
326 if (!new_ring) 326 if (!new_ring)
327 return -ENOMEM; 327 return -ENOMEM;
328 328
diff --git a/drivers/xen/grant-table.c b/drivers/xen/grant-table.c
index 27be107d6480..2473b0a9e6e4 100644
--- a/drivers/xen/grant-table.c
+++ b/drivers/xen/grant-table.c
@@ -1137,7 +1137,7 @@ static int gnttab_map(unsigned int start_idx, unsigned int end_idx)
1137 /* No need for kzalloc as it is initialized in following hypercall 1137 /* No need for kzalloc as it is initialized in following hypercall
1138 * GNTTABOP_setup_table. 1138 * GNTTABOP_setup_table.
1139 */ 1139 */
1140 frames = kmalloc(nr_gframes * sizeof(unsigned long), GFP_ATOMIC); 1140 frames = kmalloc_array(nr_gframes, sizeof(unsigned long), GFP_ATOMIC);
1141 if (!frames) 1141 if (!frames)
1142 return -ENOMEM; 1142 return -ENOMEM;
1143 1143
@@ -1300,8 +1300,9 @@ int gnttab_init(void)
1300 max_nr_glist_frames = (max_nr_grant_frames * 1300 max_nr_glist_frames = (max_nr_grant_frames *
1301 gnttab_interface->grefs_per_grant_frame / RPP); 1301 gnttab_interface->grefs_per_grant_frame / RPP);
1302 1302
1303 gnttab_list = kmalloc(max_nr_glist_frames * sizeof(grant_ref_t *), 1303 gnttab_list = kmalloc_array(max_nr_glist_frames,
1304 GFP_KERNEL); 1304 sizeof(grant_ref_t *),
1305 GFP_KERNEL);
1305 if (gnttab_list == NULL) 1306 if (gnttab_list == NULL)
1306 return -ENOMEM; 1307 return -ENOMEM;
1307 1308
diff --git a/drivers/xen/xen-pciback/pciback_ops.c b/drivers/xen/xen-pciback/pciback_ops.c
index ee2c891b55c6..ea4a08b83fa0 100644
--- a/drivers/xen/xen-pciback/pciback_ops.c
+++ b/drivers/xen/xen-pciback/pciback_ops.c
@@ -234,7 +234,7 @@ int xen_pcibk_enable_msix(struct xen_pcibk_device *pdev,
234 if (dev->msi_enabled || !(cmd & PCI_COMMAND_MEMORY)) 234 if (dev->msi_enabled || !(cmd & PCI_COMMAND_MEMORY))
235 return -ENXIO; 235 return -ENXIO;
236 236
237 entries = kmalloc(op->value * sizeof(*entries), GFP_KERNEL); 237 entries = kmalloc_array(op->value, sizeof(*entries), GFP_KERNEL);
238 if (entries == NULL) 238 if (entries == NULL)
239 return -ENOMEM; 239 return -ENOMEM;
240 240
diff --git a/fs/9p/fid.c b/fs/9p/fid.c
index ed4f8519b627..a9ef46f02354 100644
--- a/fs/9p/fid.c
+++ b/fs/9p/fid.c
@@ -100,7 +100,7 @@ static int build_path_from_dentry(struct v9fs_session_info *v9ses,
100 for (ds = dentry; !IS_ROOT(ds); ds = ds->d_parent) 100 for (ds = dentry; !IS_ROOT(ds); ds = ds->d_parent)
101 n++; 101 n++;
102 102
103 wnames = kmalloc(sizeof(char *) * n, GFP_KERNEL); 103 wnames = kmalloc_array(n, sizeof(char *), GFP_KERNEL);
104 if (!wnames) 104 if (!wnames)
105 goto err_out; 105 goto err_out;
106 106
diff --git a/fs/adfs/super.c b/fs/adfs/super.c
index cfda2c7caedc..71fa525d63a0 100644
--- a/fs/adfs/super.c
+++ b/fs/adfs/super.c
@@ -313,7 +313,7 @@ static struct adfs_discmap *adfs_read_map(struct super_block *sb, struct adfs_di
313 313
314 asb->s_ids_per_zone = zone_size / (asb->s_idlen + 1); 314 asb->s_ids_per_zone = zone_size / (asb->s_idlen + 1);
315 315
316 dm = kmalloc(nzones * sizeof(*dm), GFP_KERNEL); 316 dm = kmalloc_array(nzones, sizeof(*dm), GFP_KERNEL);
317 if (dm == NULL) { 317 if (dm == NULL) {
318 adfs_error(sb, "not enough memory"); 318 adfs_error(sb, "not enough memory");
319 return ERR_PTR(-ENOMEM); 319 return ERR_PTR(-ENOMEM);
diff --git a/fs/afs/cmservice.c b/fs/afs/cmservice.c
index c332c95a6940..238fd28cfdd2 100644
--- a/fs/afs/cmservice.c
+++ b/fs/afs/cmservice.c
@@ -191,7 +191,8 @@ static int afs_deliver_cb_callback(struct afs_call *call)
191 if (call->count > AFSCBMAX) 191 if (call->count > AFSCBMAX)
192 return afs_protocol_error(call, -EBADMSG); 192 return afs_protocol_error(call, -EBADMSG);
193 193
194 call->buffer = kmalloc(call->count * 3 * 4, GFP_KERNEL); 194 call->buffer = kmalloc(array3_size(call->count, 3, 4),
195 GFP_KERNEL);
195 if (!call->buffer) 196 if (!call->buffer)
196 return -ENOMEM; 197 return -ENOMEM;
197 call->offset = 0; 198 call->offset = 0;
@@ -330,7 +331,7 @@ static int afs_deliver_cb_init_call_back_state3(struct afs_call *call)
330 switch (call->unmarshall) { 331 switch (call->unmarshall) {
331 case 0: 332 case 0:
332 call->offset = 0; 333 call->offset = 0;
333 call->buffer = kmalloc(11 * sizeof(__be32), GFP_KERNEL); 334 call->buffer = kmalloc_array(11, sizeof(__be32), GFP_KERNEL);
334 if (!call->buffer) 335 if (!call->buffer)
335 return -ENOMEM; 336 return -ENOMEM;
336 call->unmarshall++; 337 call->unmarshall++;
@@ -453,7 +454,7 @@ static int afs_deliver_cb_probe_uuid(struct afs_call *call)
453 switch (call->unmarshall) { 454 switch (call->unmarshall) {
454 case 0: 455 case 0:
455 call->offset = 0; 456 call->offset = 0;
456 call->buffer = kmalloc(11 * sizeof(__be32), GFP_KERNEL); 457 call->buffer = kmalloc_array(11, sizeof(__be32), GFP_KERNEL);
457 if (!call->buffer) 458 if (!call->buffer)
458 return -ENOMEM; 459 return -ENOMEM;
459 call->unmarshall++; 460 call->unmarshall++;
diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c
index 4ad6f669fe34..070b6184642d 100644
--- a/fs/binfmt_elf.c
+++ b/fs/binfmt_elf.c
@@ -2010,7 +2010,7 @@ static int elf_note_info_init(struct elf_note_info *info)
2010 INIT_LIST_HEAD(&info->thread_list); 2010 INIT_LIST_HEAD(&info->thread_list);
2011 2011
2012 /* Allocate space for ELF notes */ 2012 /* Allocate space for ELF notes */
2013 info->notes = kmalloc(8 * sizeof(struct memelfnote), GFP_KERNEL); 2013 info->notes = kmalloc_array(8, sizeof(struct memelfnote), GFP_KERNEL);
2014 if (!info->notes) 2014 if (!info->notes)
2015 return 0; 2015 return 0;
2016 info->psinfo = kmalloc(sizeof(*info->psinfo), GFP_KERNEL); 2016 info->psinfo = kmalloc(sizeof(*info->psinfo), GFP_KERNEL);
@@ -2294,7 +2294,7 @@ static int elf_core_dump(struct coredump_params *cprm)
2294 2294
2295 if (segs - 1 > ULONG_MAX / sizeof(*vma_filesz)) 2295 if (segs - 1 > ULONG_MAX / sizeof(*vma_filesz))
2296 goto end_coredump; 2296 goto end_coredump;
2297 vma_filesz = vmalloc((segs - 1) * sizeof(*vma_filesz)); 2297 vma_filesz = vmalloc(array_size(sizeof(*vma_filesz), (segs - 1)));
2298 if (!vma_filesz) 2298 if (!vma_filesz)
2299 goto end_coredump; 2299 goto end_coredump;
2300 2300
diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c
index d90993adeffa..b53bb3729ac1 100644
--- a/fs/binfmt_elf_fdpic.c
+++ b/fs/binfmt_elf_fdpic.c
@@ -1600,7 +1600,8 @@ static int elf_fdpic_core_dump(struct coredump_params *cprm)
1600 psinfo = kmalloc(sizeof(*psinfo), GFP_KERNEL); 1600 psinfo = kmalloc(sizeof(*psinfo), GFP_KERNEL);
1601 if (!psinfo) 1601 if (!psinfo)
1602 goto cleanup; 1602 goto cleanup;
1603 notes = kmalloc(NUM_NOTES * sizeof(struct memelfnote), GFP_KERNEL); 1603 notes = kmalloc_array(NUM_NOTES, sizeof(struct memelfnote),
1604 GFP_KERNEL);
1604 if (!notes) 1605 if (!notes)
1605 goto cleanup; 1606 goto cleanup;
1606 fpu = kmalloc(sizeof(*fpu), GFP_KERNEL); 1607 fpu = kmalloc(sizeof(*fpu), GFP_KERNEL);
diff --git a/fs/block_dev.c b/fs/block_dev.c
index 05e12aea2404..0dd87aaeb39a 100644
--- a/fs/block_dev.c
+++ b/fs/block_dev.c
@@ -205,7 +205,8 @@ __blkdev_direct_IO_simple(struct kiocb *iocb, struct iov_iter *iter,
205 if (nr_pages <= DIO_INLINE_BIO_VECS) 205 if (nr_pages <= DIO_INLINE_BIO_VECS)
206 vecs = inline_vecs; 206 vecs = inline_vecs;
207 else { 207 else {
208 vecs = kmalloc(nr_pages * sizeof(struct bio_vec), GFP_KERNEL); 208 vecs = kmalloc_array(nr_pages, sizeof(struct bio_vec),
209 GFP_KERNEL);
209 if (!vecs) 210 if (!vecs)
210 return -ENOMEM; 211 return -ENOMEM;
211 } 212 }
diff --git a/fs/btrfs/check-integrity.c b/fs/btrfs/check-integrity.c
index dc062b195c46..a3fdb4fe967d 100644
--- a/fs/btrfs/check-integrity.c
+++ b/fs/btrfs/check-integrity.c
@@ -1603,8 +1603,8 @@ static int btrfsic_read_block(struct btrfsic_state *state,
1603 1603
1604 num_pages = (block_ctx->len + (u64)PAGE_SIZE - 1) >> 1604 num_pages = (block_ctx->len + (u64)PAGE_SIZE - 1) >>
1605 PAGE_SHIFT; 1605 PAGE_SHIFT;
1606 block_ctx->mem_to_free = kzalloc((sizeof(*block_ctx->datav) + 1606 block_ctx->mem_to_free = kcalloc(sizeof(*block_ctx->datav) +
1607 sizeof(*block_ctx->pagev)) * 1607 sizeof(*block_ctx->pagev),
1608 num_pages, GFP_NOFS); 1608 num_pages, GFP_NOFS);
1609 if (!block_ctx->mem_to_free) 1609 if (!block_ctx->mem_to_free)
1610 return -ENOMEM; 1610 return -ENOMEM;
diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c
index 5f7ad3d0df2e..c9cb2f33a6d6 100644
--- a/fs/ceph/addr.c
+++ b/fs/ceph/addr.c
@@ -370,7 +370,7 @@ static int start_read(struct inode *inode, struct ceph_rw_context *rw_ctx,
370 370
371 /* build page vector */ 371 /* build page vector */
372 nr_pages = calc_pages_for(0, len); 372 nr_pages = calc_pages_for(0, len);
373 pages = kmalloc(sizeof(*pages) * nr_pages, GFP_KERNEL); 373 pages = kmalloc_array(nr_pages, sizeof(*pages), GFP_KERNEL);
374 if (!pages) { 374 if (!pages) {
375 ret = -ENOMEM; 375 ret = -ENOMEM;
376 goto out_put; 376 goto out_put;
@@ -966,8 +966,9 @@ get_more_pages:
966 966
967 BUG_ON(pages); 967 BUG_ON(pages);
968 max_pages = calc_pages_for(0, (u64)len); 968 max_pages = calc_pages_for(0, (u64)len);
969 pages = kmalloc(max_pages * sizeof (*pages), 969 pages = kmalloc_array(max_pages,
970 GFP_NOFS); 970 sizeof(*pages),
971 GFP_NOFS);
971 if (!pages) { 972 if (!pages) {
972 pool = fsc->wb_pagevec_pool; 973 pool = fsc->wb_pagevec_pool;
973 pages = mempool_alloc(pool, GFP_NOFS); 974 pages = mempool_alloc(pool, GFP_NOFS);
@@ -1113,8 +1114,8 @@ new_request:
1113 1114
1114 /* allocate new pages array for next request */ 1115 /* allocate new pages array for next request */
1115 data_pages = pages; 1116 data_pages = pages;
1116 pages = kmalloc(locked_pages * sizeof (*pages), 1117 pages = kmalloc_array(locked_pages, sizeof(*pages),
1117 GFP_NOFS); 1118 GFP_NOFS);
1118 if (!pages) { 1119 if (!pages) {
1119 pool = fsc->wb_pagevec_pool; 1120 pool = fsc->wb_pagevec_pool;
1120 pages = mempool_alloc(pool, GFP_NOFS); 1121 pages = mempool_alloc(pool, GFP_NOFS);
diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c
index 5ece2e6ad154..cf8d24812cc0 100644
--- a/fs/ceph/mds_client.c
+++ b/fs/ceph/mds_client.c
@@ -2992,8 +2992,9 @@ encode_again:
2992 num_flock_locks = 0; 2992 num_flock_locks = 0;
2993 } 2993 }
2994 if (num_fcntl_locks + num_flock_locks > 0) { 2994 if (num_fcntl_locks + num_flock_locks > 0) {
2995 flocks = kmalloc((num_fcntl_locks + num_flock_locks) * 2995 flocks = kmalloc_array(num_fcntl_locks + num_flock_locks,
2996 sizeof(struct ceph_filelock), GFP_NOFS); 2996 sizeof(struct ceph_filelock),
2997 GFP_NOFS);
2997 if (!flocks) { 2998 if (!flocks) {
2998 err = -ENOMEM; 2999 err = -ENOMEM;
2999 goto out_free; 3000 goto out_free;
diff --git a/fs/cifs/asn1.c b/fs/cifs/asn1.c
index a3b56544c21b..3d19595eb352 100644
--- a/fs/cifs/asn1.c
+++ b/fs/cifs/asn1.c
@@ -428,7 +428,7 @@ asn1_oid_decode(struct asn1_ctx *ctx,
428 if (size < 2 || size > UINT_MAX/sizeof(unsigned long)) 428 if (size < 2 || size > UINT_MAX/sizeof(unsigned long))
429 return 0; 429 return 0;
430 430
431 *oid = kmalloc(size * sizeof(unsigned long), GFP_ATOMIC); 431 *oid = kmalloc_array(size, sizeof(unsigned long), GFP_ATOMIC);
432 if (*oid == NULL) 432 if (*oid == NULL)
433 return 0; 433 return 0;
434 434
diff --git a/fs/cifs/cifsacl.c b/fs/cifs/cifsacl.c
index 13a8a77322c9..1d377b7f2860 100644
--- a/fs/cifs/cifsacl.c
+++ b/fs/cifs/cifsacl.c
@@ -747,8 +747,8 @@ static void parse_dacl(struct cifs_acl *pdacl, char *end_of_acl,
747 747
748 if (num_aces > ULONG_MAX / sizeof(struct cifs_ace *)) 748 if (num_aces > ULONG_MAX / sizeof(struct cifs_ace *))
749 return; 749 return;
750 ppace = kmalloc(num_aces * sizeof(struct cifs_ace *), 750 ppace = kmalloc_array(num_aces, sizeof(struct cifs_ace *),
751 GFP_KERNEL); 751 GFP_KERNEL);
752 if (!ppace) 752 if (!ppace)
753 return; 753 return;
754 754
diff --git a/fs/cifs/cifssmb.c b/fs/cifs/cifssmb.c
index 5aca336642c0..42329b25877d 100644
--- a/fs/cifs/cifssmb.c
+++ b/fs/cifs/cifssmb.c
@@ -2077,7 +2077,7 @@ struct cifs_writedata *
2077cifs_writedata_alloc(unsigned int nr_pages, work_func_t complete) 2077cifs_writedata_alloc(unsigned int nr_pages, work_func_t complete)
2078{ 2078{
2079 struct page **pages = 2079 struct page **pages =
2080 kzalloc(sizeof(struct page *) * nr_pages, GFP_NOFS); 2080 kcalloc(nr_pages, sizeof(struct page *), GFP_NOFS);
2081 if (pages) 2081 if (pages)
2082 return cifs_writedata_direct_alloc(pages, complete); 2082 return cifs_writedata_direct_alloc(pages, complete);
2083 2083
diff --git a/fs/cifs/file.c b/fs/cifs/file.c
index 87eece6fbd48..8d41ca7bfcf1 100644
--- a/fs/cifs/file.c
+++ b/fs/cifs/file.c
@@ -2900,7 +2900,7 @@ static struct cifs_readdata *
2900cifs_readdata_alloc(unsigned int nr_pages, work_func_t complete) 2900cifs_readdata_alloc(unsigned int nr_pages, work_func_t complete)
2901{ 2901{
2902 struct page **pages = 2902 struct page **pages =
2903 kzalloc(sizeof(struct page *) * nr_pages, GFP_KERNEL); 2903 kcalloc(nr_pages, sizeof(struct page *), GFP_KERNEL);
2904 struct cifs_readdata *ret = NULL; 2904 struct cifs_readdata *ret = NULL;
2905 2905
2906 if (pages) { 2906 if (pages) {
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c
index 745fd7fe8d0e..a94071c7b408 100644
--- a/fs/cifs/inode.c
+++ b/fs/cifs/inode.c
@@ -1792,7 +1792,7 @@ cifs_rename2(struct inode *source_dir, struct dentry *source_dentry,
1792 * with unix extensions enabled. 1792 * with unix extensions enabled.
1793 */ 1793 */
1794 info_buf_source = 1794 info_buf_source =
1795 kmalloc(2 * sizeof(FILE_UNIX_BASIC_INFO), 1795 kmalloc_array(2, sizeof(FILE_UNIX_BASIC_INFO),
1796 GFP_KERNEL); 1796 GFP_KERNEL);
1797 if (info_buf_source == NULL) { 1797 if (info_buf_source == NULL) {
1798 rc = -ENOMEM; 1798 rc = -ENOMEM;
diff --git a/fs/cifs/misc.c b/fs/cifs/misc.c
index f90d4ad6624c..af29ade195c0 100644
--- a/fs/cifs/misc.c
+++ b/fs/cifs/misc.c
@@ -789,7 +789,7 @@ setup_aio_ctx_iter(struct cifs_aio_ctx *ctx, struct iov_iter *iter, int rw)
789 GFP_KERNEL); 789 GFP_KERNEL);
790 790
791 if (!bv) { 791 if (!bv) {
792 bv = vmalloc(max_pages * sizeof(struct bio_vec)); 792 bv = vmalloc(array_size(max_pages, sizeof(struct bio_vec)));
793 if (!bv) 793 if (!bv)
794 return -ENOMEM; 794 return -ENOMEM;
795 } 795 }
@@ -799,7 +799,7 @@ setup_aio_ctx_iter(struct cifs_aio_ctx *ctx, struct iov_iter *iter, int rw)
799 GFP_KERNEL); 799 GFP_KERNEL);
800 800
801 if (!pages) { 801 if (!pages) {
802 pages = vmalloc(max_pages * sizeof(struct page *)); 802 pages = vmalloc(array_size(max_pages, sizeof(struct page *)));
803 if (!pages) { 803 if (!pages) {
804 kvfree(bv); 804 kvfree(bv);
805 return -ENOMEM; 805 return -ENOMEM;
diff --git a/fs/cifs/smb2pdu.c b/fs/cifs/smb2pdu.c
index 48e2004c75fb..af032e1a3eac 100644
--- a/fs/cifs/smb2pdu.c
+++ b/fs/cifs/smb2pdu.c
@@ -3471,7 +3471,7 @@ send_set_info(const unsigned int xid, struct cifs_tcon *tcon,
3471 if (!num) 3471 if (!num)
3472 return -EINVAL; 3472 return -EINVAL;
3473 3473
3474 iov = kmalloc(sizeof(struct kvec) * num, GFP_KERNEL); 3474 iov = kmalloc_array(num, sizeof(struct kvec), GFP_KERNEL);
3475 if (!iov) 3475 if (!iov)
3476 return -ENOMEM; 3476 return -ENOMEM;
3477 3477
@@ -3535,7 +3535,7 @@ SMB2_rename(const unsigned int xid, struct cifs_tcon *tcon,
3535 int rc; 3535 int rc;
3536 int len = (2 * UniStrnlen((wchar_t *)target_file, PATH_MAX)); 3536 int len = (2 * UniStrnlen((wchar_t *)target_file, PATH_MAX));
3537 3537
3538 data = kmalloc(sizeof(void *) * 2, GFP_KERNEL); 3538 data = kmalloc_array(2, sizeof(void *), GFP_KERNEL);
3539 if (!data) 3539 if (!data)
3540 return -ENOMEM; 3540 return -ENOMEM;
3541 3541
@@ -3583,7 +3583,7 @@ SMB2_set_hardlink(const unsigned int xid, struct cifs_tcon *tcon,
3583 int rc; 3583 int rc;
3584 int len = (2 * UniStrnlen((wchar_t *)target_file, PATH_MAX)); 3584 int len = (2 * UniStrnlen((wchar_t *)target_file, PATH_MAX));
3585 3585
3586 data = kmalloc(sizeof(void *) * 2, GFP_KERNEL); 3586 data = kmalloc_array(2, sizeof(void *), GFP_KERNEL);
3587 if (!data) 3587 if (!data)
3588 return -ENOMEM; 3588 return -ENOMEM;
3589 3589
diff --git a/fs/cifs/transport.c b/fs/cifs/transport.c
index 24887a0898c0..1f1a68f89110 100644
--- a/fs/cifs/transport.c
+++ b/fs/cifs/transport.c
@@ -844,8 +844,8 @@ SendReceive2(const unsigned int xid, struct cifs_ses *ses,
844 int rc; 844 int rc;
845 845
846 if (n_vec + 1 > CIFS_MAX_IOV_SIZE) { 846 if (n_vec + 1 > CIFS_MAX_IOV_SIZE) {
847 new_iov = kmalloc(sizeof(struct kvec) * (n_vec + 1), 847 new_iov = kmalloc_array(n_vec + 1, sizeof(struct kvec),
848 GFP_KERNEL); 848 GFP_KERNEL);
849 if (!new_iov) { 849 if (!new_iov) {
850 /* otherwise cifs_send_recv below sets resp_buf_type */ 850 /* otherwise cifs_send_recv below sets resp_buf_type */
851 *resp_buf_type = CIFS_NO_BUFFER; 851 *resp_buf_type = CIFS_NO_BUFFER;
@@ -886,8 +886,8 @@ smb2_send_recv(const unsigned int xid, struct cifs_ses *ses,
886 __be32 rfc1002_marker; 886 __be32 rfc1002_marker;
887 887
888 if (n_vec + 1 > CIFS_MAX_IOV_SIZE) { 888 if (n_vec + 1 > CIFS_MAX_IOV_SIZE) {
889 new_iov = kmalloc(sizeof(struct kvec) * (n_vec + 1), 889 new_iov = kmalloc_array(n_vec + 1, sizeof(struct kvec),
890 GFP_KERNEL); 890 GFP_KERNEL);
891 if (!new_iov) 891 if (!new_iov)
892 return -ENOMEM; 892 return -ENOMEM;
893 } else 893 } else
diff --git a/fs/dlm/lockspace.c b/fs/dlm/lockspace.c
index 78a7c855b06b..5ba94be006ee 100644
--- a/fs/dlm/lockspace.c
+++ b/fs/dlm/lockspace.c
@@ -517,7 +517,7 @@ static int new_lockspace(const char *name, const char *cluster,
517 size = dlm_config.ci_rsbtbl_size; 517 size = dlm_config.ci_rsbtbl_size;
518 ls->ls_rsbtbl_size = size; 518 ls->ls_rsbtbl_size = size;
519 519
520 ls->ls_rsbtbl = vmalloc(sizeof(struct dlm_rsbtable) * size); 520 ls->ls_rsbtbl = vmalloc(array_size(size, sizeof(struct dlm_rsbtable)));
521 if (!ls->ls_rsbtbl) 521 if (!ls->ls_rsbtbl)
522 goto out_lsfree; 522 goto out_lsfree;
523 for (i = 0; i < size; i++) { 523 for (i = 0; i < size; i++) {
diff --git a/fs/exofs/inode.c b/fs/exofs/inode.c
index 0ac62811b341..5f81fcd383a4 100644
--- a/fs/exofs/inode.c
+++ b/fs/exofs/inode.c
@@ -110,8 +110,8 @@ static int pcol_try_alloc(struct page_collect *pcol)
110 pages = exofs_max_io_pages(&pcol->sbi->layout, pcol->expected_pages); 110 pages = exofs_max_io_pages(&pcol->sbi->layout, pcol->expected_pages);
111 111
112 for (; pages; pages >>= 1) { 112 for (; pages; pages >>= 1) {
113 pcol->pages = kmalloc(pages * sizeof(struct page *), 113 pcol->pages = kmalloc_array(pages, sizeof(struct page *),
114 GFP_KERNEL); 114 GFP_KERNEL);
115 if (likely(pcol->pages)) { 115 if (likely(pcol->pages)) {
116 pcol->alloc_pages = pages; 116 pcol->alloc_pages = pages;
117 return 0; 117 return 0;
diff --git a/fs/ext2/super.c b/fs/ext2/super.c
index c09289a42dc5..25ab1274090f 100644
--- a/fs/ext2/super.c
+++ b/fs/ext2/super.c
@@ -1082,7 +1082,9 @@ static int ext2_fill_super(struct super_block *sb, void *data, int silent)
1082 / EXT2_BLOCKS_PER_GROUP(sb)) + 1; 1082 / EXT2_BLOCKS_PER_GROUP(sb)) + 1;
1083 db_count = (sbi->s_groups_count + EXT2_DESC_PER_BLOCK(sb) - 1) / 1083 db_count = (sbi->s_groups_count + EXT2_DESC_PER_BLOCK(sb) - 1) /
1084 EXT2_DESC_PER_BLOCK(sb); 1084 EXT2_DESC_PER_BLOCK(sb);
1085 sbi->s_group_desc = kmalloc (db_count * sizeof (struct buffer_head *), GFP_KERNEL); 1085 sbi->s_group_desc = kmalloc_array (db_count,
1086 sizeof(struct buffer_head *),
1087 GFP_KERNEL);
1086 if (sbi->s_group_desc == NULL) { 1088 if (sbi->s_group_desc == NULL) {
1087 ext2_msg(sb, KERN_ERR, "error: not enough memory"); 1089 ext2_msg(sb, KERN_ERR, "error: not enough memory");
1088 goto failed_mount; 1090 goto failed_mount;
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
index c969275ce3ee..0057fe3f248d 100644
--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -577,7 +577,7 @@ int ext4_ext_precache(struct inode *inode)
577 down_read(&ei->i_data_sem); 577 down_read(&ei->i_data_sem);
578 depth = ext_depth(inode); 578 depth = ext_depth(inode);
579 579
580 path = kzalloc(sizeof(struct ext4_ext_path) * (depth + 1), 580 path = kcalloc(depth + 1, sizeof(struct ext4_ext_path),
581 GFP_NOFS); 581 GFP_NOFS);
582 if (path == NULL) { 582 if (path == NULL) {
583 up_read(&ei->i_data_sem); 583 up_read(&ei->i_data_sem);
@@ -879,7 +879,7 @@ ext4_find_extent(struct inode *inode, ext4_lblk_t block,
879 } 879 }
880 if (!path) { 880 if (!path) {
881 /* account possible depth increase */ 881 /* account possible depth increase */
882 path = kzalloc(sizeof(struct ext4_ext_path) * (depth + 2), 882 path = kcalloc(depth + 2, sizeof(struct ext4_ext_path),
883 GFP_NOFS); 883 GFP_NOFS);
884 if (unlikely(!path)) 884 if (unlikely(!path))
885 return ERR_PTR(-ENOMEM); 885 return ERR_PTR(-ENOMEM);
@@ -1063,7 +1063,7 @@ static int ext4_ext_split(handle_t *handle, struct inode *inode,
1063 * We need this to handle errors and free blocks 1063 * We need this to handle errors and free blocks
1064 * upon them. 1064 * upon them.
1065 */ 1065 */
1066 ablocks = kzalloc(sizeof(ext4_fsblk_t) * depth, GFP_NOFS); 1066 ablocks = kcalloc(depth, sizeof(ext4_fsblk_t), GFP_NOFS);
1067 if (!ablocks) 1067 if (!ablocks)
1068 return -ENOMEM; 1068 return -ENOMEM;
1069 1069
@@ -2921,7 +2921,7 @@ again:
2921 path[k].p_block = 2921 path[k].p_block =
2922 le16_to_cpu(path[k].p_hdr->eh_entries)+1; 2922 le16_to_cpu(path[k].p_hdr->eh_entries)+1;
2923 } else { 2923 } else {
2924 path = kzalloc(sizeof(struct ext4_ext_path) * (depth + 1), 2924 path = kcalloc(depth + 1, sizeof(struct ext4_ext_path),
2925 GFP_NOFS); 2925 GFP_NOFS);
2926 if (path == NULL) { 2926 if (path == NULL) {
2927 ext4_journal_stop(handle); 2927 ext4_journal_stop(handle);
diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c
index d792b7689d92..e5fb38451a73 100644
--- a/fs/ext4/resize.c
+++ b/fs/ext4/resize.c
@@ -204,12 +204,14 @@ static struct ext4_new_flex_group_data *alloc_flex_gd(unsigned long flexbg_size)
204 goto out2; 204 goto out2;
205 flex_gd->count = flexbg_size; 205 flex_gd->count = flexbg_size;
206 206
207 flex_gd->groups = kmalloc(sizeof(struct ext4_new_group_data) * 207 flex_gd->groups = kmalloc_array(flexbg_size,
208 flexbg_size, GFP_NOFS); 208 sizeof(struct ext4_new_group_data),
209 GFP_NOFS);
209 if (flex_gd->groups == NULL) 210 if (flex_gd->groups == NULL)
210 goto out2; 211 goto out2;
211 212
212 flex_gd->bg_flags = kmalloc(flexbg_size * sizeof(__u16), GFP_NOFS); 213 flex_gd->bg_flags = kmalloc_array(flexbg_size, sizeof(__u16),
214 GFP_NOFS);
213 if (flex_gd->bg_flags == NULL) 215 if (flex_gd->bg_flags == NULL)
214 goto out1; 216 goto out1;
215 217
@@ -969,7 +971,7 @@ static int reserve_backup_gdb(handle_t *handle, struct inode *inode,
969 int res, i; 971 int res, i;
970 int err; 972 int err;
971 973
972 primary = kmalloc(reserved_gdb * sizeof(*primary), GFP_NOFS); 974 primary = kmalloc_array(reserved_gdb, sizeof(*primary), GFP_NOFS);
973 if (!primary) 975 if (!primary)
974 return -ENOMEM; 976 return -ENOMEM;
975 977
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index 00fe75a71c4b..0c4c2201b3aa 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -3993,9 +3993,9 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent)
3993 goto failed_mount; 3993 goto failed_mount;
3994 } 3994 }
3995 } 3995 }
3996 sbi->s_group_desc = kvmalloc(db_count * 3996 sbi->s_group_desc = kvmalloc_array(db_count,
3997 sizeof(struct buffer_head *), 3997 sizeof(struct buffer_head *),
3998 GFP_KERNEL); 3998 GFP_KERNEL);
3999 if (sbi->s_group_desc == NULL) { 3999 if (sbi->s_group_desc == NULL) {
4000 ext4_msg(sb, KERN_ERR, "not enough memory"); 4000 ext4_msg(sb, KERN_ERR, "not enough memory");
4001 ret = -ENOMEM; 4001 ret = -ENOMEM;
diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c
index 9624a8f7254b..9f1c96caebda 100644
--- a/fs/f2fs/checkpoint.c
+++ b/fs/f2fs/checkpoint.c
@@ -806,7 +806,8 @@ int f2fs_get_valid_checkpoint(struct f2fs_sb_info *sbi)
806 block_t cp_blk_no; 806 block_t cp_blk_no;
807 int i; 807 int i;
808 808
809 sbi->ckpt = f2fs_kzalloc(sbi, cp_blks * blk_size, GFP_KERNEL); 809 sbi->ckpt = f2fs_kzalloc(sbi, array_size(blk_size, cp_blks),
810 GFP_KERNEL);
810 if (!sbi->ckpt) 811 if (!sbi->ckpt)
811 return -ENOMEM; 812 return -ENOMEM;
812 /* 813 /*
diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
index 13f2f6845e87..cadb425c02d7 100644
--- a/fs/f2fs/file.c
+++ b/fs/f2fs/file.c
@@ -1122,12 +1122,14 @@ static int __exchange_data_block(struct inode *src_inode,
1122 olen = min((pgoff_t)4 * ADDRS_PER_BLOCK, len); 1122 olen = min((pgoff_t)4 * ADDRS_PER_BLOCK, len);
1123 1123
1124 src_blkaddr = f2fs_kvzalloc(F2FS_I_SB(src_inode), 1124 src_blkaddr = f2fs_kvzalloc(F2FS_I_SB(src_inode),
1125 sizeof(block_t) * olen, GFP_KERNEL); 1125 array_size(olen, sizeof(block_t)),
1126 GFP_KERNEL);
1126 if (!src_blkaddr) 1127 if (!src_blkaddr)
1127 return -ENOMEM; 1128 return -ENOMEM;
1128 1129
1129 do_replace = f2fs_kvzalloc(F2FS_I_SB(src_inode), 1130 do_replace = f2fs_kvzalloc(F2FS_I_SB(src_inode),
1130 sizeof(int) * olen, GFP_KERNEL); 1131 array_size(olen, sizeof(int)),
1132 GFP_KERNEL);
1131 if (!do_replace) { 1133 if (!do_replace) {
1132 kvfree(src_blkaddr); 1134 kvfree(src_blkaddr);
1133 return -ENOMEM; 1135 return -ENOMEM;
diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c
index 47d0e64a95a8..10643b11bd59 100644
--- a/fs/f2fs/node.c
+++ b/fs/f2fs/node.c
@@ -2753,8 +2753,10 @@ static int init_free_nid_cache(struct f2fs_sb_info *sbi)
2753 struct f2fs_nm_info *nm_i = NM_I(sbi); 2753 struct f2fs_nm_info *nm_i = NM_I(sbi);
2754 int i; 2754 int i;
2755 2755
2756 nm_i->free_nid_bitmap = f2fs_kzalloc(sbi, nm_i->nat_blocks * 2756 nm_i->free_nid_bitmap =
2757 sizeof(unsigned char *), GFP_KERNEL); 2757 f2fs_kzalloc(sbi, array_size(sizeof(unsigned char *),
2758 nm_i->nat_blocks),
2759 GFP_KERNEL);
2758 if (!nm_i->free_nid_bitmap) 2760 if (!nm_i->free_nid_bitmap)
2759 return -ENOMEM; 2761 return -ENOMEM;
2760 2762
@@ -2770,8 +2772,10 @@ static int init_free_nid_cache(struct f2fs_sb_info *sbi)
2770 if (!nm_i->nat_block_bitmap) 2772 if (!nm_i->nat_block_bitmap)
2771 return -ENOMEM; 2773 return -ENOMEM;
2772 2774
2773 nm_i->free_nid_count = f2fs_kvzalloc(sbi, nm_i->nat_blocks * 2775 nm_i->free_nid_count =
2774 sizeof(unsigned short), GFP_KERNEL); 2776 f2fs_kvzalloc(sbi, array_size(sizeof(unsigned short),
2777 nm_i->nat_blocks),
2778 GFP_KERNEL);
2775 if (!nm_i->free_nid_count) 2779 if (!nm_i->free_nid_count)
2776 return -ENOMEM; 2780 return -ENOMEM;
2777 return 0; 2781 return 0;
diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c
index 6dbdf2c48fba..9efce174c51a 100644
--- a/fs/f2fs/segment.c
+++ b/fs/f2fs/segment.c
@@ -3517,8 +3517,10 @@ static int build_sit_info(struct f2fs_sb_info *sbi)
3517 3517
3518 SM_I(sbi)->sit_info = sit_i; 3518 SM_I(sbi)->sit_info = sit_i;
3519 3519
3520 sit_i->sentries = f2fs_kvzalloc(sbi, MAIN_SEGS(sbi) * 3520 sit_i->sentries =
3521 sizeof(struct seg_entry), GFP_KERNEL); 3521 f2fs_kvzalloc(sbi, array_size(sizeof(struct seg_entry),
3522 MAIN_SEGS(sbi)),
3523 GFP_KERNEL);
3522 if (!sit_i->sentries) 3524 if (!sit_i->sentries)
3523 return -ENOMEM; 3525 return -ENOMEM;
3524 3526
@@ -3558,8 +3560,10 @@ static int build_sit_info(struct f2fs_sb_info *sbi)
3558 return -ENOMEM; 3560 return -ENOMEM;
3559 3561
3560 if (sbi->segs_per_sec > 1) { 3562 if (sbi->segs_per_sec > 1) {
3561 sit_i->sec_entries = f2fs_kvzalloc(sbi, MAIN_SECS(sbi) * 3563 sit_i->sec_entries =
3562 sizeof(struct sec_entry), GFP_KERNEL); 3564 f2fs_kvzalloc(sbi, array_size(sizeof(struct sec_entry),
3565 MAIN_SECS(sbi)),
3566 GFP_KERNEL);
3563 if (!sit_i->sec_entries) 3567 if (!sit_i->sec_entries)
3564 return -ENOMEM; 3568 return -ENOMEM;
3565 } 3569 }
@@ -3635,7 +3639,8 @@ static int build_curseg(struct f2fs_sb_info *sbi)
3635 struct curseg_info *array; 3639 struct curseg_info *array;
3636 int i; 3640 int i;
3637 3641
3638 array = f2fs_kzalloc(sbi, sizeof(*array) * NR_CURSEG_TYPE, GFP_KERNEL); 3642 array = f2fs_kzalloc(sbi, array_size(NR_CURSEG_TYPE, sizeof(*array)),
3643 GFP_KERNEL);
3639 if (!array) 3644 if (!array)
3640 return -ENOMEM; 3645 return -ENOMEM;
3641 3646
diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
index e7441e8d1ff8..3995e926ba3a 100644
--- a/fs/f2fs/super.c
+++ b/fs/f2fs/super.c
@@ -2419,8 +2419,10 @@ static int init_blkz_info(struct f2fs_sb_info *sbi, int devi)
2419 2419
2420#define F2FS_REPORT_NR_ZONES 4096 2420#define F2FS_REPORT_NR_ZONES 4096
2421 2421
2422 zones = f2fs_kzalloc(sbi, sizeof(struct blk_zone) * 2422 zones = f2fs_kzalloc(sbi,
2423 F2FS_REPORT_NR_ZONES, GFP_KERNEL); 2423 array_size(F2FS_REPORT_NR_ZONES,
2424 sizeof(struct blk_zone)),
2425 GFP_KERNEL);
2424 if (!zones) 2426 if (!zones)
2425 return -ENOMEM; 2427 return -ENOMEM;
2426 2428
@@ -2560,8 +2562,10 @@ static int f2fs_scan_devices(struct f2fs_sb_info *sbi)
2560 * Initialize multiple devices information, or single 2562 * Initialize multiple devices information, or single
2561 * zoned block device information. 2563 * zoned block device information.
2562 */ 2564 */
2563 sbi->devs = f2fs_kzalloc(sbi, sizeof(struct f2fs_dev_info) * 2565 sbi->devs = f2fs_kzalloc(sbi,
2564 max_devices, GFP_KERNEL); 2566 array_size(max_devices,
2567 sizeof(struct f2fs_dev_info)),
2568 GFP_KERNEL);
2565 if (!sbi->devs) 2569 if (!sbi->devs)
2566 return -ENOMEM; 2570 return -ENOMEM;
2567 2571
@@ -2783,9 +2787,11 @@ try_onemore:
2783 int n = (i == META) ? 1: NR_TEMP_TYPE; 2787 int n = (i == META) ? 1: NR_TEMP_TYPE;
2784 int j; 2788 int j;
2785 2789
2786 sbi->write_io[i] = f2fs_kmalloc(sbi, 2790 sbi->write_io[i] =
2787 n * sizeof(struct f2fs_bio_info), 2791 f2fs_kmalloc(sbi,
2788 GFP_KERNEL); 2792 array_size(n,
2793 sizeof(struct f2fs_bio_info)),
2794 GFP_KERNEL);
2789 if (!sbi->write_io[i]) { 2795 if (!sbi->write_io[i]) {
2790 err = -ENOMEM; 2796 err = -ENOMEM;
2791 goto free_options; 2797 goto free_options;
diff --git a/fs/fat/namei_vfat.c b/fs/fat/namei_vfat.c
index 4f4362d5a04c..d4e23f8ddcf6 100644
--- a/fs/fat/namei_vfat.c
+++ b/fs/fat/namei_vfat.c
@@ -664,7 +664,7 @@ static int vfat_add_entry(struct inode *dir, const struct qstr *qname,
664 if (len == 0) 664 if (len == 0)
665 return -ENOENT; 665 return -ENOENT;
666 666
667 slots = kmalloc(sizeof(*slots) * MSDOS_SLOTS, GFP_NOFS); 667 slots = kmalloc_array(MSDOS_SLOTS, sizeof(*slots), GFP_NOFS);
668 if (slots == NULL) 668 if (slots == NULL)
669 return -ENOMEM; 669 return -ENOMEM;
670 670
diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c
index e03ca14f40e9..c6b88fa85e2e 100644
--- a/fs/fuse/dev.c
+++ b/fs/fuse/dev.c
@@ -64,9 +64,12 @@ static struct fuse_req *__fuse_request_alloc(unsigned npages, gfp_t flags)
64 pages = req->inline_pages; 64 pages = req->inline_pages;
65 page_descs = req->inline_page_descs; 65 page_descs = req->inline_page_descs;
66 } else { 66 } else {
67 pages = kmalloc(sizeof(struct page *) * npages, flags); 67 pages = kmalloc_array(npages, sizeof(struct page *),
68 page_descs = kmalloc(sizeof(struct fuse_page_desc) * 68 flags);
69 npages, flags); 69 page_descs =
70 kmalloc_array(npages,
71 sizeof(struct fuse_page_desc),
72 flags);
70 } 73 }
71 74
72 if (!pages || !page_descs) { 75 if (!pages || !page_descs) {
@@ -1359,7 +1362,8 @@ static ssize_t fuse_dev_splice_read(struct file *in, loff_t *ppos,
1359 if (!fud) 1362 if (!fud)
1360 return -EPERM; 1363 return -EPERM;
1361 1364
1362 bufs = kmalloc(pipe->buffers * sizeof(struct pipe_buffer), GFP_KERNEL); 1365 bufs = kmalloc_array(pipe->buffers, sizeof(struct pipe_buffer),
1366 GFP_KERNEL);
1363 if (!bufs) 1367 if (!bufs)
1364 return -ENOMEM; 1368 return -ENOMEM;
1365 1369
@@ -1940,7 +1944,8 @@ static ssize_t fuse_dev_splice_write(struct pipe_inode_info *pipe,
1940 if (!fud) 1944 if (!fud)
1941 return -EPERM; 1945 return -EPERM;
1942 1946
1943 bufs = kmalloc(pipe->buffers * sizeof(struct pipe_buffer), GFP_KERNEL); 1947 bufs = kmalloc_array(pipe->buffers, sizeof(struct pipe_buffer),
1948 GFP_KERNEL);
1944 if (!bufs) 1949 if (!bufs)
1945 return -ENOMEM; 1950 return -ENOMEM;
1946 1951
diff --git a/fs/gfs2/dir.c b/fs/gfs2/dir.c
index d9fb0ad6cc30..3090c445e8fc 100644
--- a/fs/gfs2/dir.c
+++ b/fs/gfs2/dir.c
@@ -1055,7 +1055,7 @@ static int dir_split_leaf(struct inode *inode, const struct qstr *name)
1055 /* Change the pointers. 1055 /* Change the pointers.
1056 Don't bother distinguishing stuffed from non-stuffed. 1056 Don't bother distinguishing stuffed from non-stuffed.
1057 This code is complicated enough already. */ 1057 This code is complicated enough already. */
1058 lp = kmalloc(half_len * sizeof(__be64), GFP_NOFS); 1058 lp = kmalloc_array(half_len, sizeof(__be64), GFP_NOFS);
1059 if (!lp) { 1059 if (!lp) {
1060 error = -ENOMEM; 1060 error = -ENOMEM;
1061 goto fail_brelse; 1061 goto fail_brelse;
@@ -1169,7 +1169,7 @@ static int dir_double_exhash(struct gfs2_inode *dip)
1169 if (IS_ERR(hc)) 1169 if (IS_ERR(hc))
1170 return PTR_ERR(hc); 1170 return PTR_ERR(hc);
1171 1171
1172 hc2 = kmalloc(hsize_bytes * 2, GFP_NOFS | __GFP_NOWARN); 1172 hc2 = kmalloc_array(hsize_bytes, 2, GFP_NOFS | __GFP_NOWARN);
1173 if (hc2 == NULL) 1173 if (hc2 == NULL)
1174 hc2 = __vmalloc(hsize_bytes * 2, GFP_NOFS, PAGE_KERNEL); 1174 hc2 = __vmalloc(hsize_bytes * 2, GFP_NOFS, PAGE_KERNEL);
1175 1175
@@ -1596,7 +1596,7 @@ int gfs2_dir_read(struct inode *inode, struct dir_context *ctx,
1596 1596
1597 error = -ENOMEM; 1597 error = -ENOMEM;
1598 /* 96 is max number of dirents which can be stuffed into an inode */ 1598 /* 96 is max number of dirents which can be stuffed into an inode */
1599 darr = kmalloc(96 * sizeof(struct gfs2_dirent *), GFP_NOFS); 1599 darr = kmalloc_array(96, sizeof(struct gfs2_dirent *), GFP_NOFS);
1600 if (darr) { 1600 if (darr) {
1601 g.pdent = (const struct gfs2_dirent **)darr; 1601 g.pdent = (const struct gfs2_dirent **)darr;
1602 g.offset = 0; 1602 g.offset = 0;
diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c
index 097bd3c0f270..4614ee25f621 100644
--- a/fs/gfs2/glock.c
+++ b/fs/gfs2/glock.c
@@ -1303,7 +1303,8 @@ int gfs2_glock_nq_m(unsigned int num_gh, struct gfs2_holder *ghs)
1303 default: 1303 default:
1304 if (num_gh <= 4) 1304 if (num_gh <= 4)
1305 break; 1305 break;
1306 pph = kmalloc(num_gh * sizeof(struct gfs2_holder *), GFP_NOFS); 1306 pph = kmalloc_array(num_gh, sizeof(struct gfs2_holder *),
1307 GFP_NOFS);
1307 if (!pph) 1308 if (!pph)
1308 return -ENOMEM; 1309 return -ENOMEM;
1309 } 1310 }
diff --git a/fs/gfs2/quota.c b/fs/gfs2/quota.c
index e8585dfd209f..0efae7a0ee80 100644
--- a/fs/gfs2/quota.c
+++ b/fs/gfs2/quota.c
@@ -886,7 +886,7 @@ static int do_sync(unsigned int num_qd, struct gfs2_quota_data **qda)
886 gfs2_write_calc_reserv(ip, sizeof(struct gfs2_quota), 886 gfs2_write_calc_reserv(ip, sizeof(struct gfs2_quota),
887 &data_blocks, &ind_blocks); 887 &data_blocks, &ind_blocks);
888 888
889 ghs = kmalloc(num_qd * sizeof(struct gfs2_holder), GFP_NOFS); 889 ghs = kmalloc_array(num_qd, sizeof(struct gfs2_holder), GFP_NOFS);
890 if (!ghs) 890 if (!ghs)
891 return -ENOMEM; 891 return -ENOMEM;
892 892
diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c
index 6bc5cfe710d1..33abcf29bc05 100644
--- a/fs/gfs2/rgrp.c
+++ b/fs/gfs2/rgrp.c
@@ -2605,8 +2605,9 @@ void gfs2_rlist_alloc(struct gfs2_rgrp_list *rlist, unsigned int state)
2605{ 2605{
2606 unsigned int x; 2606 unsigned int x;
2607 2607
2608 rlist->rl_ghs = kmalloc(rlist->rl_rgrps * sizeof(struct gfs2_holder), 2608 rlist->rl_ghs = kmalloc_array(rlist->rl_rgrps,
2609 GFP_NOFS | __GFP_NOFAIL); 2609 sizeof(struct gfs2_holder),
2610 GFP_NOFS | __GFP_NOFAIL);
2610 for (x = 0; x < rlist->rl_rgrps; x++) 2611 for (x = 0; x < rlist->rl_rgrps; x++)
2611 gfs2_holder_init(rlist->rl_rgd[x]->rd_gl, 2612 gfs2_holder_init(rlist->rl_rgd[x]->rd_gl,
2612 state, 0, 2613 state, 0,
diff --git a/fs/gfs2/super.c b/fs/gfs2/super.c
index cf5c7f3080d2..af0d5b01cf0b 100644
--- a/fs/gfs2/super.c
+++ b/fs/gfs2/super.c
@@ -1097,7 +1097,7 @@ static int gfs2_statfs_slow(struct gfs2_sbd *sdp, struct gfs2_statfs_change_host
1097 int error = 0, err; 1097 int error = 0, err;
1098 1098
1099 memset(sc, 0, sizeof(struct gfs2_statfs_change_host)); 1099 memset(sc, 0, sizeof(struct gfs2_statfs_change_host));
1100 gha = kmalloc(slots * sizeof(struct gfs2_holder), GFP_KERNEL); 1100 gha = kmalloc_array(slots, sizeof(struct gfs2_holder), GFP_KERNEL);
1101 if (!gha) 1101 if (!gha)
1102 return -ENOMEM; 1102 return -ENOMEM;
1103 for (x = 0; x < slots; x++) 1103 for (x = 0; x < slots; x++)
diff --git a/fs/hpfs/dnode.c b/fs/hpfs/dnode.c
index a4ad18afbdec..4ada525c5c43 100644
--- a/fs/hpfs/dnode.c
+++ b/fs/hpfs/dnode.c
@@ -33,7 +33,8 @@ int hpfs_add_pos(struct inode *inode, loff_t *pos)
33 if (hpfs_inode->i_rddir_off[i] == pos) 33 if (hpfs_inode->i_rddir_off[i] == pos)
34 return 0; 34 return 0;
35 if (!(i&0x0f)) { 35 if (!(i&0x0f)) {
36 if (!(ppos = kmalloc((i+0x11) * sizeof(loff_t*), GFP_NOFS))) { 36 ppos = kmalloc_array(i + 0x11, sizeof(loff_t *), GFP_NOFS);
37 if (!ppos) {
37 pr_err("out of memory for position list\n"); 38 pr_err("out of memory for position list\n");
38 return -ENOMEM; 39 return -ENOMEM;
39 } 40 }
diff --git a/fs/hpfs/map.c b/fs/hpfs/map.c
index 7c49f1ef0c85..ecd9fccd1663 100644
--- a/fs/hpfs/map.c
+++ b/fs/hpfs/map.c
@@ -115,7 +115,7 @@ __le32 *hpfs_load_bitmap_directory(struct super_block *s, secno bmp)
115 int n = (hpfs_sb(s)->sb_fs_size + 0x200000 - 1) >> 21; 115 int n = (hpfs_sb(s)->sb_fs_size + 0x200000 - 1) >> 21;
116 int i; 116 int i;
117 __le32 *b; 117 __le32 *b;
118 if (!(b = kmalloc(n * 512, GFP_KERNEL))) { 118 if (!(b = kmalloc_array(n, 512, GFP_KERNEL))) {
119 pr_err("can't allocate memory for bitmap directory\n"); 119 pr_err("can't allocate memory for bitmap directory\n");
120 return NULL; 120 return NULL;
121 } 121 }
diff --git a/fs/jbd2/revoke.c b/fs/jbd2/revoke.c
index 240779e4689c..a1143e57a718 100644
--- a/fs/jbd2/revoke.c
+++ b/fs/jbd2/revoke.c
@@ -223,7 +223,7 @@ static struct jbd2_revoke_table_s *jbd2_journal_init_revoke_table(int hash_size)
223 table->hash_size = hash_size; 223 table->hash_size = hash_size;
224 table->hash_shift = shift; 224 table->hash_shift = shift;
225 table->hash_table = 225 table->hash_table =
226 kmalloc(hash_size * sizeof(struct list_head), GFP_KERNEL); 226 kmalloc_array(hash_size, sizeof(struct list_head), GFP_KERNEL);
227 if (!table->hash_table) { 227 if (!table->hash_table) {
228 kmem_cache_free(jbd2_revoke_table_cache, table); 228 kmem_cache_free(jbd2_revoke_table_cache, table);
229 table = NULL; 229 table = NULL;
diff --git a/fs/jffs2/acl.c b/fs/jffs2/acl.c
index 7ebacf14837f..093ffbd82395 100644
--- a/fs/jffs2/acl.c
+++ b/fs/jffs2/acl.c
@@ -133,7 +133,8 @@ static void *jffs2_acl_to_medium(const struct posix_acl *acl, size_t *size)
133 size_t i; 133 size_t i;
134 134
135 *size = jffs2_acl_size(acl->a_count); 135 *size = jffs2_acl_size(acl->a_count);
136 header = kmalloc(sizeof(*header) + acl->a_count * sizeof(*entry), GFP_KERNEL); 136 header = kmalloc(struct_size(header, a_entries, acl->a_count),
137 GFP_KERNEL);
137 if (!header) 138 if (!header)
138 return ERR_PTR(-ENOMEM); 139 return ERR_PTR(-ENOMEM);
139 header->a_version = cpu_to_je32(JFFS2_ACL_VERSION); 140 header->a_version = cpu_to_je32(JFFS2_ACL_VERSION);
diff --git a/fs/jffs2/acl.h b/fs/jffs2/acl.h
index 2e2b5745c3b7..12d0271bdde3 100644
--- a/fs/jffs2/acl.h
+++ b/fs/jffs2/acl.h
@@ -22,6 +22,7 @@ struct jffs2_acl_entry_short {
22 22
23struct jffs2_acl_header { 23struct jffs2_acl_header {
24 jint32_t a_version; 24 jint32_t a_version;
25 struct jffs2_acl_entry a_entries[];
25}; 26};
26 27
27#ifdef CONFIG_JFFS2_FS_POSIX_ACL 28#ifdef CONFIG_JFFS2_FS_POSIX_ACL
diff --git a/fs/jffs2/wbuf.c b/fs/jffs2/wbuf.c
index 2cfe487708e0..c6821a509481 100644
--- a/fs/jffs2/wbuf.c
+++ b/fs/jffs2/wbuf.c
@@ -1208,7 +1208,7 @@ int jffs2_nand_flash_setup(struct jffs2_sb_info *c)
1208 if (!c->wbuf) 1208 if (!c->wbuf)
1209 return -ENOMEM; 1209 return -ENOMEM;
1210 1210
1211 c->oobbuf = kmalloc(NR_OOB_SCAN_PAGES * c->oobavail, GFP_KERNEL); 1211 c->oobbuf = kmalloc_array(NR_OOB_SCAN_PAGES, c->oobavail, GFP_KERNEL);
1212 if (!c->oobbuf) { 1212 if (!c->oobbuf) {
1213 kfree(c->wbuf); 1213 kfree(c->wbuf);
1214 return -ENOMEM; 1214 return -ENOMEM;
diff --git a/fs/jfs/jfs_dmap.c b/fs/jfs/jfs_dmap.c
index 2d514c7affc2..49263e220dbc 100644
--- a/fs/jfs/jfs_dmap.c
+++ b/fs/jfs/jfs_dmap.c
@@ -1641,7 +1641,7 @@ s64 dbDiscardAG(struct inode *ip, int agno, s64 minlen)
1641 max_ranges = nblocks; 1641 max_ranges = nblocks;
1642 do_div(max_ranges, minlen); 1642 do_div(max_ranges, minlen);
1643 range_cnt = min_t(u64, max_ranges + 1, 32 * 1024); 1643 range_cnt = min_t(u64, max_ranges + 1, 32 * 1024);
1644 totrim = kmalloc(sizeof(struct range2trim) * range_cnt, GFP_NOFS); 1644 totrim = kmalloc_array(range_cnt, sizeof(struct range2trim), GFP_NOFS);
1645 if (totrim == NULL) { 1645 if (totrim == NULL) {
1646 jfs_error(bmp->db_ipbmap->i_sb, "no memory for trim array\n"); 1646 jfs_error(bmp->db_ipbmap->i_sb, "no memory for trim array\n");
1647 IWRITE_UNLOCK(ipbmap); 1647 IWRITE_UNLOCK(ipbmap);
diff --git a/fs/jfs/jfs_dtree.c b/fs/jfs/jfs_dtree.c
index de2bcb36e079..52bae3f5c914 100644
--- a/fs/jfs/jfs_dtree.c
+++ b/fs/jfs/jfs_dtree.c
@@ -594,7 +594,8 @@ int dtSearch(struct inode *ip, struct component_name * key, ino_t * data,
594 struct component_name ciKey; 594 struct component_name ciKey;
595 struct super_block *sb = ip->i_sb; 595 struct super_block *sb = ip->i_sb;
596 596
597 ciKey.name = kmalloc((JFS_NAME_MAX + 1) * sizeof(wchar_t), GFP_NOFS); 597 ciKey.name = kmalloc_array(JFS_NAME_MAX + 1, sizeof(wchar_t),
598 GFP_NOFS);
598 if (!ciKey.name) { 599 if (!ciKey.name) {
599 rc = -ENOMEM; 600 rc = -ENOMEM;
600 goto dtSearch_Exit2; 601 goto dtSearch_Exit2;
@@ -957,7 +958,7 @@ static int dtSplitUp(tid_t tid,
957 smp = split->mp; 958 smp = split->mp;
958 sp = DT_PAGE(ip, smp); 959 sp = DT_PAGE(ip, smp);
959 960
960 key.name = kmalloc((JFS_NAME_MAX + 2) * sizeof(wchar_t), GFP_NOFS); 961 key.name = kmalloc_array(JFS_NAME_MAX + 2, sizeof(wchar_t), GFP_NOFS);
961 if (!key.name) { 962 if (!key.name) {
962 DT_PUTPAGE(smp); 963 DT_PUTPAGE(smp);
963 rc = -ENOMEM; 964 rc = -ENOMEM;
@@ -3779,12 +3780,12 @@ static int ciGetLeafPrefixKey(dtpage_t * lp, int li, dtpage_t * rp,
3779 struct component_name lkey; 3780 struct component_name lkey;
3780 struct component_name rkey; 3781 struct component_name rkey;
3781 3782
3782 lkey.name = kmalloc((JFS_NAME_MAX + 1) * sizeof(wchar_t), 3783 lkey.name = kmalloc_array(JFS_NAME_MAX + 1, sizeof(wchar_t),
3783 GFP_KERNEL); 3784 GFP_KERNEL);
3784 if (lkey.name == NULL) 3785 if (lkey.name == NULL)
3785 return -ENOMEM; 3786 return -ENOMEM;
3786 3787
3787 rkey.name = kmalloc((JFS_NAME_MAX + 1) * sizeof(wchar_t), 3788 rkey.name = kmalloc_array(JFS_NAME_MAX + 1, sizeof(wchar_t),
3788 GFP_KERNEL); 3789 GFP_KERNEL);
3789 if (rkey.name == NULL) { 3790 if (rkey.name == NULL) {
3790 kfree(lkey.name); 3791 kfree(lkey.name);
diff --git a/fs/jfs/jfs_unicode.c b/fs/jfs/jfs_unicode.c
index c7de6f5bbefc..0148e2e4d97a 100644
--- a/fs/jfs/jfs_unicode.c
+++ b/fs/jfs/jfs_unicode.c
@@ -121,7 +121,7 @@ int get_UCSname(struct component_name * uniName, struct dentry *dentry)
121 return -ENAMETOOLONG; 121 return -ENAMETOOLONG;
122 122
123 uniName->name = 123 uniName->name =
124 kmalloc((length + 1) * sizeof(wchar_t), GFP_NOFS); 124 kmalloc_array(length + 1, sizeof(wchar_t), GFP_NOFS);
125 125
126 if (uniName->name == NULL) 126 if (uniName->name == NULL)
127 return -ENOMEM; 127 return -ENOMEM;
diff --git a/fs/mbcache.c b/fs/mbcache.c
index bf41e2e72c18..081ccf0caee3 100644
--- a/fs/mbcache.c
+++ b/fs/mbcache.c
@@ -353,8 +353,9 @@ struct mb_cache *mb_cache_create(int bucket_bits)
353 cache->c_max_entries = bucket_count << 4; 353 cache->c_max_entries = bucket_count << 4;
354 INIT_LIST_HEAD(&cache->c_list); 354 INIT_LIST_HEAD(&cache->c_list);
355 spin_lock_init(&cache->c_list_lock); 355 spin_lock_init(&cache->c_list_lock);
356 cache->c_hash = kmalloc(bucket_count * sizeof(struct hlist_bl_head), 356 cache->c_hash = kmalloc_array(bucket_count,
357 GFP_KERNEL); 357 sizeof(struct hlist_bl_head),
358 GFP_KERNEL);
358 if (!cache->c_hash) { 359 if (!cache->c_hash) {
359 kfree(cache); 360 kfree(cache);
360 goto err_out; 361 goto err_out;
diff --git a/fs/namei.c b/fs/namei.c
index 6df1f61855d6..2490ddb8bc90 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -537,12 +537,12 @@ static int __nd_alloc_stack(struct nameidata *nd)
537 struct saved *p; 537 struct saved *p;
538 538
539 if (nd->flags & LOOKUP_RCU) { 539 if (nd->flags & LOOKUP_RCU) {
540 p= kmalloc(MAXSYMLINKS * sizeof(struct saved), 540 p= kmalloc_array(MAXSYMLINKS, sizeof(struct saved),
541 GFP_ATOMIC); 541 GFP_ATOMIC);
542 if (unlikely(!p)) 542 if (unlikely(!p))
543 return -ECHILD; 543 return -ECHILD;
544 } else { 544 } else {
545 p= kmalloc(MAXSYMLINKS * sizeof(struct saved), 545 p= kmalloc_array(MAXSYMLINKS, sizeof(struct saved),
546 GFP_KERNEL); 546 GFP_KERNEL);
547 if (unlikely(!p)) 547 if (unlikely(!p))
548 return -ENOMEM; 548 return -ENOMEM;
diff --git a/fs/nfs/flexfilelayout/flexfilelayout.c b/fs/nfs/flexfilelayout/flexfilelayout.c
index 3ae038d9c292..d4a07acad598 100644
--- a/fs/nfs/flexfilelayout/flexfilelayout.c
+++ b/fs/nfs/flexfilelayout/flexfilelayout.c
@@ -461,7 +461,7 @@ ff_layout_alloc_lseg(struct pnfs_layout_hdr *lh,
461 fh_count = be32_to_cpup(p); 461 fh_count = be32_to_cpup(p);
462 462
463 fls->mirror_array[i]->fh_versions = 463 fls->mirror_array[i]->fh_versions =
464 kzalloc(fh_count * sizeof(struct nfs_fh), 464 kcalloc(fh_count, sizeof(struct nfs_fh),
465 gfp_flags); 465 gfp_flags);
466 if (fls->mirror_array[i]->fh_versions == NULL) { 466 if (fls->mirror_array[i]->fh_versions == NULL) {
467 rc = -ENOMEM; 467 rc = -ENOMEM;
diff --git a/fs/nfs/flexfilelayout/flexfilelayoutdev.c b/fs/nfs/flexfilelayout/flexfilelayoutdev.c
index d62279d3fc5d..59aa04976331 100644
--- a/fs/nfs/flexfilelayout/flexfilelayoutdev.c
+++ b/fs/nfs/flexfilelayout/flexfilelayoutdev.c
@@ -99,7 +99,8 @@ nfs4_ff_alloc_deviceid_node(struct nfs_server *server, struct pnfs_device *pdev,
99 version_count = be32_to_cpup(p); 99 version_count = be32_to_cpup(p);
100 dprintk("%s: version count %d\n", __func__, version_count); 100 dprintk("%s: version count %d\n", __func__, version_count);
101 101
102 ds_versions = kzalloc(version_count * sizeof(struct nfs4_ff_ds_version), 102 ds_versions = kcalloc(version_count,
103 sizeof(struct nfs4_ff_ds_version),
103 gfp_flags); 104 gfp_flags);
104 if (!ds_versions) 105 if (!ds_versions)
105 goto out_scratch; 106 goto out_scratch;
diff --git a/fs/nfsd/export.c b/fs/nfsd/export.c
index 8ceb25a10ea0..a1143f7c2201 100644
--- a/fs/nfsd/export.c
+++ b/fs/nfsd/export.c
@@ -404,8 +404,9 @@ fsloc_parse(char **mesg, char *buf, struct nfsd4_fs_locations *fsloc)
404 if (fsloc->locations_count == 0) 404 if (fsloc->locations_count == 0)
405 return 0; 405 return 0;
406 406
407 fsloc->locations = kzalloc(fsloc->locations_count 407 fsloc->locations = kcalloc(fsloc->locations_count,
408 * sizeof(struct nfsd4_fs_location), GFP_KERNEL); 408 sizeof(struct nfsd4_fs_location),
409 GFP_KERNEL);
409 if (!fsloc->locations) 410 if (!fsloc->locations)
410 return -ENOMEM; 411 return -ENOMEM;
411 for (i=0; i < fsloc->locations_count; i++) { 412 for (i=0; i < fsloc->locations_count; i++) {
diff --git a/fs/nfsd/nfs4recover.c b/fs/nfsd/nfs4recover.c
index 66eaeb1e8c2c..9c247fa1e959 100644
--- a/fs/nfsd/nfs4recover.c
+++ b/fs/nfsd/nfs4recover.c
@@ -510,8 +510,9 @@ nfs4_legacy_state_init(struct net *net)
510 struct nfsd_net *nn = net_generic(net, nfsd_net_id); 510 struct nfsd_net *nn = net_generic(net, nfsd_net_id);
511 int i; 511 int i;
512 512
513 nn->reclaim_str_hashtbl = kmalloc(sizeof(struct list_head) * 513 nn->reclaim_str_hashtbl = kmalloc_array(CLIENT_HASH_SIZE,
514 CLIENT_HASH_SIZE, GFP_KERNEL); 514 sizeof(struct list_head),
515 GFP_KERNEL);
515 if (!nn->reclaim_str_hashtbl) 516 if (!nn->reclaim_str_hashtbl)
516 return -ENOMEM; 517 return -ENOMEM;
517 518
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
index 3b40d1b57613..857141446d6b 100644
--- a/fs/nfsd/nfs4state.c
+++ b/fs/nfsd/nfs4state.c
@@ -1807,8 +1807,9 @@ static struct nfs4_client *alloc_client(struct xdr_netobj name)
1807 clp->cl_name.data = kmemdup(name.data, name.len, GFP_KERNEL); 1807 clp->cl_name.data = kmemdup(name.data, name.len, GFP_KERNEL);
1808 if (clp->cl_name.data == NULL) 1808 if (clp->cl_name.data == NULL)
1809 goto err_no_name; 1809 goto err_no_name;
1810 clp->cl_ownerstr_hashtbl = kmalloc(sizeof(struct list_head) * 1810 clp->cl_ownerstr_hashtbl = kmalloc_array(OWNER_HASH_SIZE,
1811 OWNER_HASH_SIZE, GFP_KERNEL); 1811 sizeof(struct list_head),
1812 GFP_KERNEL);
1812 if (!clp->cl_ownerstr_hashtbl) 1813 if (!clp->cl_ownerstr_hashtbl)
1813 goto err_no_hashtbl; 1814 goto err_no_hashtbl;
1814 for (i = 0; i < OWNER_HASH_SIZE; i++) 1815 for (i = 0; i < OWNER_HASH_SIZE; i++)
@@ -7096,16 +7097,19 @@ static int nfs4_state_create_net(struct net *net)
7096 struct nfsd_net *nn = net_generic(net, nfsd_net_id); 7097 struct nfsd_net *nn = net_generic(net, nfsd_net_id);
7097 int i; 7098 int i;
7098 7099
7099 nn->conf_id_hashtbl = kmalloc(sizeof(struct list_head) * 7100 nn->conf_id_hashtbl = kmalloc_array(CLIENT_HASH_SIZE,
7100 CLIENT_HASH_SIZE, GFP_KERNEL); 7101 sizeof(struct list_head),
7102 GFP_KERNEL);
7101 if (!nn->conf_id_hashtbl) 7103 if (!nn->conf_id_hashtbl)
7102 goto err; 7104 goto err;
7103 nn->unconf_id_hashtbl = kmalloc(sizeof(struct list_head) * 7105 nn->unconf_id_hashtbl = kmalloc_array(CLIENT_HASH_SIZE,
7104 CLIENT_HASH_SIZE, GFP_KERNEL); 7106 sizeof(struct list_head),
7107 GFP_KERNEL);
7105 if (!nn->unconf_id_hashtbl) 7108 if (!nn->unconf_id_hashtbl)
7106 goto err_unconf_id; 7109 goto err_unconf_id;
7107 nn->sessionid_hashtbl = kmalloc(sizeof(struct list_head) * 7110 nn->sessionid_hashtbl = kmalloc_array(SESSION_HASH_SIZE,
7108 SESSION_HASH_SIZE, GFP_KERNEL); 7111 sizeof(struct list_head),
7112 GFP_KERNEL);
7109 if (!nn->sessionid_hashtbl) 7113 if (!nn->sessionid_hashtbl)
7110 goto err_sessionid; 7114 goto err_sessionid;
7111 7115
diff --git a/fs/nfsd/nfscache.c b/fs/nfsd/nfscache.c
index 637f87c39183..dbdeb9d6af03 100644
--- a/fs/nfsd/nfscache.c
+++ b/fs/nfsd/nfscache.c
@@ -177,7 +177,8 @@ int nfsd_reply_cache_init(void)
177 177
178 drc_hashtbl = kcalloc(hashsize, sizeof(*drc_hashtbl), GFP_KERNEL); 178 drc_hashtbl = kcalloc(hashsize, sizeof(*drc_hashtbl), GFP_KERNEL);
179 if (!drc_hashtbl) { 179 if (!drc_hashtbl) {
180 drc_hashtbl = vzalloc(hashsize * sizeof(*drc_hashtbl)); 180 drc_hashtbl = vzalloc(array_size(hashsize,
181 sizeof(*drc_hashtbl)));
181 if (!drc_hashtbl) 182 if (!drc_hashtbl)
182 goto out_nomem; 183 goto out_nomem;
183 } 184 }
diff --git a/fs/ntfs/compress.c b/fs/ntfs/compress.c
index f8eb04387ca4..fbd0090d7d0c 100644
--- a/fs/ntfs/compress.c
+++ b/fs/ntfs/compress.c
@@ -527,7 +527,7 @@ int ntfs_read_compressed_block(struct page *page)
527 BUG_ON(ni->type != AT_DATA); 527 BUG_ON(ni->type != AT_DATA);
528 BUG_ON(ni->name_len); 528 BUG_ON(ni->name_len);
529 529
530 pages = kmalloc(nr_pages * sizeof(struct page *), GFP_NOFS); 530 pages = kmalloc_array(nr_pages, sizeof(struct page *), GFP_NOFS);
531 531
532 /* Allocate memory to store the buffer heads we need. */ 532 /* Allocate memory to store the buffer heads we need. */
533 bhs_size = cb_size / block_size * sizeof(struct buffer_head *); 533 bhs_size = cb_size / block_size * sizeof(struct buffer_head *);
diff --git a/fs/ocfs2/cluster/tcp.c b/fs/ocfs2/cluster/tcp.c
index e5076185cc1e..1296f78ae966 100644
--- a/fs/ocfs2/cluster/tcp.c
+++ b/fs/ocfs2/cluster/tcp.c
@@ -1078,7 +1078,7 @@ int o2net_send_message_vec(u32 msg_type, u32 key, struct kvec *caller_vec,
1078 o2net_set_nst_sock_container(&nst, sc); 1078 o2net_set_nst_sock_container(&nst, sc);
1079 1079
1080 veclen = caller_veclen + 1; 1080 veclen = caller_veclen + 1;
1081 vec = kmalloc(sizeof(struct kvec) * veclen, GFP_ATOMIC); 1081 vec = kmalloc_array(veclen, sizeof(struct kvec), GFP_ATOMIC);
1082 if (vec == NULL) { 1082 if (vec == NULL) {
1083 mlog(0, "failed to %zu element kvec!\n", veclen); 1083 mlog(0, "failed to %zu element kvec!\n", veclen);
1084 ret = -ENOMEM; 1084 ret = -ENOMEM;
diff --git a/fs/ocfs2/dlm/dlmdomain.c b/fs/ocfs2/dlm/dlmdomain.c
index 425081be6161..2acd58ba9b7b 100644
--- a/fs/ocfs2/dlm/dlmdomain.c
+++ b/fs/ocfs2/dlm/dlmdomain.c
@@ -86,7 +86,7 @@ static void dlm_free_pagevec(void **vec, int pages)
86 86
87static void **dlm_alloc_pagevec(int pages) 87static void **dlm_alloc_pagevec(int pages)
88{ 88{
89 void **vec = kmalloc(pages * sizeof(void *), GFP_KERNEL); 89 void **vec = kmalloc_array(pages, sizeof(void *), GFP_KERNEL);
90 int i; 90 int i;
91 91
92 if (!vec) 92 if (!vec)
diff --git a/fs/ocfs2/journal.c b/fs/ocfs2/journal.c
index e5dcea6cee5f..bd3475694e83 100644
--- a/fs/ocfs2/journal.c
+++ b/fs/ocfs2/journal.c
@@ -1383,7 +1383,7 @@ static int __ocfs2_recovery_thread(void *arg)
1383 goto bail; 1383 goto bail;
1384 } 1384 }
1385 1385
1386 rm_quota = kzalloc(osb->max_slots * sizeof(int), GFP_NOFS); 1386 rm_quota = kcalloc(osb->max_slots, sizeof(int), GFP_NOFS);
1387 if (!rm_quota) { 1387 if (!rm_quota) {
1388 status = -ENOMEM; 1388 status = -ENOMEM;
1389 goto bail; 1389 goto bail;
diff --git a/fs/ocfs2/sysfile.c b/fs/ocfs2/sysfile.c
index af155c183123..5965f3878d49 100644
--- a/fs/ocfs2/sysfile.c
+++ b/fs/ocfs2/sysfile.c
@@ -69,10 +69,11 @@ static struct inode **get_local_system_inode(struct ocfs2_super *osb,
69 spin_unlock(&osb->osb_lock); 69 spin_unlock(&osb->osb_lock);
70 70
71 if (unlikely(!local_system_inodes)) { 71 if (unlikely(!local_system_inodes)) {
72 local_system_inodes = kzalloc(sizeof(struct inode *) * 72 local_system_inodes =
73 NUM_LOCAL_SYSTEM_INODES * 73 kzalloc(array3_size(sizeof(struct inode *),
74 osb->max_slots, 74 NUM_LOCAL_SYSTEM_INODES,
75 GFP_NOFS); 75 osb->max_slots),
76 GFP_NOFS);
76 if (!local_system_inodes) { 77 if (!local_system_inodes) {
77 mlog_errno(-ENOMEM); 78 mlog_errno(-ENOMEM);
78 /* 79 /*
diff --git a/fs/overlayfs/namei.c b/fs/overlayfs/namei.c
index 08801b45df00..c993dd8db739 100644
--- a/fs/overlayfs/namei.c
+++ b/fs/overlayfs/namei.c
@@ -612,7 +612,7 @@ static int ovl_get_index_name_fh(struct ovl_fh *fh, struct qstr *name)
612{ 612{
613 char *n, *s; 613 char *n, *s;
614 614
615 n = kzalloc(fh->len * 2, GFP_KERNEL); 615 n = kcalloc(fh->len, 2, GFP_KERNEL);
616 if (!n) 616 if (!n)
617 return -ENOMEM; 617 return -ENOMEM;
618 618
diff --git a/fs/proc/base.c b/fs/proc/base.c
index 4aa9ce5df02f..80aa42506b8b 100644
--- a/fs/proc/base.c
+++ b/fs/proc/base.c
@@ -389,7 +389,8 @@ static int proc_pid_stack(struct seq_file *m, struct pid_namespace *ns,
389 unsigned long *entries; 389 unsigned long *entries;
390 int err; 390 int err;
391 391
392 entries = kmalloc(MAX_STACK_TRACE_DEPTH * sizeof(*entries), GFP_KERNEL); 392 entries = kmalloc_array(MAX_STACK_TRACE_DEPTH, sizeof(*entries),
393 GFP_KERNEL);
393 if (!entries) 394 if (!entries)
394 return -ENOMEM; 395 return -ENOMEM;
395 396
diff --git a/fs/proc/proc_sysctl.c b/fs/proc/proc_sysctl.c
index 4d765e5e91ed..89921a0d2ebb 100644
--- a/fs/proc/proc_sysctl.c
+++ b/fs/proc/proc_sysctl.c
@@ -1426,7 +1426,7 @@ static int register_leaf_sysctl_tables(const char *path, char *pos,
1426 /* If there are mixed files and directories we need a new table */ 1426 /* If there are mixed files and directories we need a new table */
1427 if (nr_dirs && nr_files) { 1427 if (nr_dirs && nr_files) {
1428 struct ctl_table *new; 1428 struct ctl_table *new;
1429 files = kzalloc(sizeof(struct ctl_table) * (nr_files + 1), 1429 files = kcalloc(nr_files + 1, sizeof(struct ctl_table),
1430 GFP_KERNEL); 1430 GFP_KERNEL);
1431 if (!files) 1431 if (!files)
1432 goto out; 1432 goto out;
diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
index 597969db9e90..e9679016271f 100644
--- a/fs/proc/task_mmu.c
+++ b/fs/proc/task_mmu.c
@@ -1473,7 +1473,7 @@ static ssize_t pagemap_read(struct file *file, char __user *buf,
1473 pm.show_pfn = file_ns_capable(file, &init_user_ns, CAP_SYS_ADMIN); 1473 pm.show_pfn = file_ns_capable(file, &init_user_ns, CAP_SYS_ADMIN);
1474 1474
1475 pm.len = (PAGEMAP_WALK_SIZE >> PAGE_SHIFT); 1475 pm.len = (PAGEMAP_WALK_SIZE >> PAGE_SHIFT);
1476 pm.buffer = kmalloc(pm.len * PM_ENTRY_BYTES, GFP_KERNEL); 1476 pm.buffer = kmalloc_array(pm.len, PM_ENTRY_BYTES, GFP_KERNEL);
1477 ret = -ENOMEM; 1477 ret = -ENOMEM;
1478 if (!pm.buffer) 1478 if (!pm.buffer)
1479 goto out_mm; 1479 goto out_mm;
diff --git a/fs/read_write.c b/fs/read_write.c
index e83bd9744b5d..153f8f690490 100644
--- a/fs/read_write.c
+++ b/fs/read_write.c
@@ -778,7 +778,7 @@ ssize_t rw_copy_check_uvector(int type, const struct iovec __user * uvector,
778 goto out; 778 goto out;
779 } 779 }
780 if (nr_segs > fast_segs) { 780 if (nr_segs > fast_segs) {
781 iov = kmalloc(nr_segs*sizeof(struct iovec), GFP_KERNEL); 781 iov = kmalloc_array(nr_segs, sizeof(struct iovec), GFP_KERNEL);
782 if (iov == NULL) { 782 if (iov == NULL) {
783 ret = -ENOMEM; 783 ret = -ENOMEM;
784 goto out; 784 goto out;
@@ -849,7 +849,7 @@ ssize_t compat_rw_copy_check_uvector(int type,
849 goto out; 849 goto out;
850 if (nr_segs > fast_segs) { 850 if (nr_segs > fast_segs) {
851 ret = -ENOMEM; 851 ret = -ENOMEM;
852 iov = kmalloc(nr_segs*sizeof(struct iovec), GFP_KERNEL); 852 iov = kmalloc_array(nr_segs, sizeof(struct iovec), GFP_KERNEL);
853 if (iov == NULL) 853 if (iov == NULL)
854 goto out; 854 goto out;
855 } 855 }
diff --git a/fs/reiserfs/bitmap.c b/fs/reiserfs/bitmap.c
index edc8ef78b63f..bf708ac287b4 100644
--- a/fs/reiserfs/bitmap.c
+++ b/fs/reiserfs/bitmap.c
@@ -1456,7 +1456,7 @@ int reiserfs_init_bitmap_cache(struct super_block *sb)
1456 struct reiserfs_bitmap_info *bitmap; 1456 struct reiserfs_bitmap_info *bitmap;
1457 unsigned int bmap_nr = reiserfs_bmap_count(sb); 1457 unsigned int bmap_nr = reiserfs_bmap_count(sb);
1458 1458
1459 bitmap = vmalloc(sizeof(*bitmap) * bmap_nr); 1459 bitmap = vmalloc(array_size(bmap_nr, sizeof(*bitmap)));
1460 if (bitmap == NULL) 1460 if (bitmap == NULL)
1461 return -ENOMEM; 1461 return -ENOMEM;
1462 1462
diff --git a/fs/reiserfs/inode.c b/fs/reiserfs/inode.c
index b13fc024d2ee..132ec4406ed0 100644
--- a/fs/reiserfs/inode.c
+++ b/fs/reiserfs/inode.c
@@ -1044,7 +1044,8 @@ research:
1044 if (blocks_needed == 1) { 1044 if (blocks_needed == 1) {
1045 un = &unf_single; 1045 un = &unf_single;
1046 } else { 1046 } else {
1047 un = kzalloc(min(blocks_needed, max_to_insert) * UNFM_P_SIZE, GFP_NOFS); 1047 un = kcalloc(min(blocks_needed, max_to_insert),
1048 UNFM_P_SIZE, GFP_NOFS);
1048 if (!un) { 1049 if (!un) {
1049 un = &unf_single; 1050 un = &unf_single;
1050 blocks_needed = 1; 1051 blocks_needed = 1;
diff --git a/fs/reiserfs/journal.c b/fs/reiserfs/journal.c
index 23148c3ed675..52eb5d293a34 100644
--- a/fs/reiserfs/journal.c
+++ b/fs/reiserfs/journal.c
@@ -350,7 +350,8 @@ static struct reiserfs_journal_cnode *allocate_cnodes(int num_cnodes)
350 if (num_cnodes <= 0) { 350 if (num_cnodes <= 0) {
351 return NULL; 351 return NULL;
352 } 352 }
353 head = vzalloc(num_cnodes * sizeof(struct reiserfs_journal_cnode)); 353 head = vzalloc(array_size(num_cnodes,
354 sizeof(struct reiserfs_journal_cnode)));
354 if (!head) { 355 if (!head) {
355 return NULL; 356 return NULL;
356 } 357 }
@@ -2192,10 +2193,12 @@ static int journal_read_transaction(struct super_block *sb,
2192 * now we know we've got a good transaction, and it was 2193 * now we know we've got a good transaction, and it was
2193 * inside the valid time ranges 2194 * inside the valid time ranges
2194 */ 2195 */
2195 log_blocks = kmalloc(get_desc_trans_len(desc) * 2196 log_blocks = kmalloc_array(get_desc_trans_len(desc),
2196 sizeof(struct buffer_head *), GFP_NOFS); 2197 sizeof(struct buffer_head *),
2197 real_blocks = kmalloc(get_desc_trans_len(desc) * 2198 GFP_NOFS);
2198 sizeof(struct buffer_head *), GFP_NOFS); 2199 real_blocks = kmalloc_array(get_desc_trans_len(desc),
2200 sizeof(struct buffer_head *),
2201 GFP_NOFS);
2199 if (!log_blocks || !real_blocks) { 2202 if (!log_blocks || !real_blocks) {
2200 brelse(c_bh); 2203 brelse(c_bh);
2201 brelse(d_bh); 2204 brelse(d_bh);
diff --git a/fs/reiserfs/resize.c b/fs/reiserfs/resize.c
index 6052d323bc9a..8096c74c38ac 100644
--- a/fs/reiserfs/resize.c
+++ b/fs/reiserfs/resize.c
@@ -120,7 +120,8 @@ int reiserfs_resize(struct super_block *s, unsigned long block_count_new)
120 * array of bitmap block pointers 120 * array of bitmap block pointers
121 */ 121 */
122 bitmap = 122 bitmap =
123 vzalloc(sizeof(struct reiserfs_bitmap_info) * bmap_nr_new); 123 vzalloc(array_size(bmap_nr_new,
124 sizeof(struct reiserfs_bitmap_info)));
124 if (!bitmap) { 125 if (!bitmap) {
125 /* 126 /*
126 * Journal bitmaps are still supersized, but the 127 * Journal bitmaps are still supersized, but the
diff --git a/fs/select.c b/fs/select.c
index bc3cc0f98896..317891ff8165 100644
--- a/fs/select.c
+++ b/fs/select.c
@@ -1236,7 +1236,7 @@ static int compat_core_sys_select(int n, compat_ulong_t __user *inp,
1236 size = FDS_BYTES(n); 1236 size = FDS_BYTES(n);
1237 bits = stack_fds; 1237 bits = stack_fds;
1238 if (size > sizeof(stack_fds) / 6) { 1238 if (size > sizeof(stack_fds) / 6) {
1239 bits = kmalloc(6 * size, GFP_KERNEL); 1239 bits = kmalloc_array(6, size, GFP_KERNEL);
1240 ret = -ENOMEM; 1240 ret = -ENOMEM;
1241 if (!bits) 1241 if (!bits)
1242 goto out_nofds; 1242 goto out_nofds;
diff --git a/fs/splice.c b/fs/splice.c
index 005d09cf3fa8..2365ab073a27 100644
--- a/fs/splice.c
+++ b/fs/splice.c
@@ -259,8 +259,9 @@ int splice_grow_spd(const struct pipe_inode_info *pipe, struct splice_pipe_desc
259 if (buffers <= PIPE_DEF_BUFFERS) 259 if (buffers <= PIPE_DEF_BUFFERS)
260 return 0; 260 return 0;
261 261
262 spd->pages = kmalloc(buffers * sizeof(struct page *), GFP_KERNEL); 262 spd->pages = kmalloc_array(buffers, sizeof(struct page *), GFP_KERNEL);
263 spd->partial = kmalloc(buffers * sizeof(struct partial_page), GFP_KERNEL); 263 spd->partial = kmalloc_array(buffers, sizeof(struct partial_page),
264 GFP_KERNEL);
264 265
265 if (spd->pages && spd->partial) 266 if (spd->pages && spd->partial)
266 return 0; 267 return 0;
@@ -395,7 +396,7 @@ static ssize_t default_file_splice_read(struct file *in, loff_t *ppos,
395 396
396 vec = __vec; 397 vec = __vec;
397 if (nr_pages > PIPE_DEF_BUFFERS) { 398 if (nr_pages > PIPE_DEF_BUFFERS) {
398 vec = kmalloc(nr_pages * sizeof(struct kvec), GFP_KERNEL); 399 vec = kmalloc_array(nr_pages, sizeof(struct kvec), GFP_KERNEL);
399 if (unlikely(!vec)) { 400 if (unlikely(!vec)) {
400 res = -ENOMEM; 401 res = -ENOMEM;
401 goto out; 402 goto out;
diff --git a/fs/ubifs/journal.c b/fs/ubifs/journal.c
index da8afdfccaa6..07b4956e0425 100644
--- a/fs/ubifs/journal.c
+++ b/fs/ubifs/journal.c
@@ -1282,10 +1282,11 @@ static int truncate_data_node(const struct ubifs_info *c, const struct inode *in
1282 int *new_len) 1282 int *new_len)
1283{ 1283{
1284 void *buf; 1284 void *buf;
1285 int err, dlen, compr_type, out_len, old_dlen; 1285 int err, compr_type;
1286 u32 dlen, out_len, old_dlen;
1286 1287
1287 out_len = le32_to_cpu(dn->size); 1288 out_len = le32_to_cpu(dn->size);
1288 buf = kmalloc(out_len * WORST_COMPR_FACTOR, GFP_NOFS); 1289 buf = kmalloc_array(out_len, WORST_COMPR_FACTOR, GFP_NOFS);
1289 if (!buf) 1290 if (!buf)
1290 return -ENOMEM; 1291 return -ENOMEM;
1291 1292
diff --git a/fs/ubifs/lpt.c b/fs/ubifs/lpt.c
index 9a517109da0f..8e99dad18880 100644
--- a/fs/ubifs/lpt.c
+++ b/fs/ubifs/lpt.c
@@ -628,11 +628,12 @@ int ubifs_create_dflt_lpt(struct ubifs_info *c, int *main_lebs, int lpt_first,
628 /* Needed by 'ubifs_pack_lsave()' */ 628 /* Needed by 'ubifs_pack_lsave()' */
629 c->main_first = c->leb_cnt - *main_lebs; 629 c->main_first = c->leb_cnt - *main_lebs;
630 630
631 lsave = kmalloc(sizeof(int) * c->lsave_cnt, GFP_KERNEL); 631 lsave = kmalloc_array(c->lsave_cnt, sizeof(int), GFP_KERNEL);
632 pnode = kzalloc(sizeof(struct ubifs_pnode), GFP_KERNEL); 632 pnode = kzalloc(sizeof(struct ubifs_pnode), GFP_KERNEL);
633 nnode = kzalloc(sizeof(struct ubifs_nnode), GFP_KERNEL); 633 nnode = kzalloc(sizeof(struct ubifs_nnode), GFP_KERNEL);
634 buf = vmalloc(c->leb_size); 634 buf = vmalloc(c->leb_size);
635 ltab = vmalloc(sizeof(struct ubifs_lpt_lprops) * c->lpt_lebs); 635 ltab = vmalloc(array_size(sizeof(struct ubifs_lpt_lprops),
636 c->lpt_lebs));
636 if (!pnode || !nnode || !buf || !ltab || !lsave) { 637 if (!pnode || !nnode || !buf || !ltab || !lsave) {
637 err = -ENOMEM; 638 err = -ENOMEM;
638 goto out; 639 goto out;
@@ -1626,7 +1627,8 @@ static int lpt_init_rd(struct ubifs_info *c)
1626{ 1627{
1627 int err, i; 1628 int err, i;
1628 1629
1629 c->ltab = vmalloc(sizeof(struct ubifs_lpt_lprops) * c->lpt_lebs); 1630 c->ltab = vmalloc(array_size(sizeof(struct ubifs_lpt_lprops),
1631 c->lpt_lebs));
1630 if (!c->ltab) 1632 if (!c->ltab)
1631 return -ENOMEM; 1633 return -ENOMEM;
1632 1634
@@ -1636,15 +1638,17 @@ static int lpt_init_rd(struct ubifs_info *c)
1636 return -ENOMEM; 1638 return -ENOMEM;
1637 1639
1638 for (i = 0; i < LPROPS_HEAP_CNT; i++) { 1640 for (i = 0; i < LPROPS_HEAP_CNT; i++) {
1639 c->lpt_heap[i].arr = kmalloc(sizeof(void *) * LPT_HEAP_SZ, 1641 c->lpt_heap[i].arr = kmalloc_array(LPT_HEAP_SZ,
1640 GFP_KERNEL); 1642 sizeof(void *),
1643 GFP_KERNEL);
1641 if (!c->lpt_heap[i].arr) 1644 if (!c->lpt_heap[i].arr)
1642 return -ENOMEM; 1645 return -ENOMEM;
1643 c->lpt_heap[i].cnt = 0; 1646 c->lpt_heap[i].cnt = 0;
1644 c->lpt_heap[i].max_cnt = LPT_HEAP_SZ; 1647 c->lpt_heap[i].max_cnt = LPT_HEAP_SZ;
1645 } 1648 }
1646 1649
1647 c->dirty_idx.arr = kmalloc(sizeof(void *) * LPT_HEAP_SZ, GFP_KERNEL); 1650 c->dirty_idx.arr = kmalloc_array(LPT_HEAP_SZ, sizeof(void *),
1651 GFP_KERNEL);
1648 if (!c->dirty_idx.arr) 1652 if (!c->dirty_idx.arr)
1649 return -ENOMEM; 1653 return -ENOMEM;
1650 c->dirty_idx.cnt = 0; 1654 c->dirty_idx.cnt = 0;
@@ -1688,7 +1692,8 @@ static int lpt_init_wr(struct ubifs_info *c)
1688{ 1692{
1689 int err, i; 1693 int err, i;
1690 1694
1691 c->ltab_cmt = vmalloc(sizeof(struct ubifs_lpt_lprops) * c->lpt_lebs); 1695 c->ltab_cmt = vmalloc(array_size(sizeof(struct ubifs_lpt_lprops),
1696 c->lpt_lebs));
1692 if (!c->ltab_cmt) 1697 if (!c->ltab_cmt)
1693 return -ENOMEM; 1698 return -ENOMEM;
1694 1699
@@ -1697,7 +1702,7 @@ static int lpt_init_wr(struct ubifs_info *c)
1697 return -ENOMEM; 1702 return -ENOMEM;
1698 1703
1699 if (c->big_lpt) { 1704 if (c->big_lpt) {
1700 c->lsave = kmalloc(sizeof(int) * c->lsave_cnt, GFP_NOFS); 1705 c->lsave = kmalloc_array(c->lsave_cnt, sizeof(int), GFP_NOFS);
1701 if (!c->lsave) 1706 if (!c->lsave)
1702 return -ENOMEM; 1707 return -ENOMEM;
1703 err = read_lsave(c); 1708 err = read_lsave(c);
@@ -1939,8 +1944,8 @@ int ubifs_lpt_scan_nolock(struct ubifs_info *c, int start_lnum, int end_lnum,
1939 return err; 1944 return err;
1940 } 1945 }
1941 1946
1942 path = kmalloc(sizeof(struct lpt_scan_node) * (c->lpt_hght + 1), 1947 path = kmalloc_array(c->lpt_hght + 1, sizeof(struct lpt_scan_node),
1943 GFP_NOFS); 1948 GFP_NOFS);
1944 if (!path) 1949 if (!path)
1945 return -ENOMEM; 1950 return -ENOMEM;
1946 1951
diff --git a/fs/ubifs/super.c b/fs/ubifs/super.c
index 6c397a389105..c5466c70d620 100644
--- a/fs/ubifs/super.c
+++ b/fs/ubifs/super.c
@@ -1196,7 +1196,8 @@ static int mount_ubifs(struct ubifs_info *c)
1196 * never exceed 64. 1196 * never exceed 64.
1197 */ 1197 */
1198 err = -ENOMEM; 1198 err = -ENOMEM;
1199 c->bottom_up_buf = kmalloc(BOTTOM_UP_HEIGHT * sizeof(int), GFP_KERNEL); 1199 c->bottom_up_buf = kmalloc_array(BOTTOM_UP_HEIGHT, sizeof(int),
1200 GFP_KERNEL);
1200 if (!c->bottom_up_buf) 1201 if (!c->bottom_up_buf)
1201 goto out_free; 1202 goto out_free;
1202 1203
diff --git a/fs/ubifs/tnc.c b/fs/ubifs/tnc.c
index ba3d0e0f8615..4a21e7f75e7a 100644
--- a/fs/ubifs/tnc.c
+++ b/fs/ubifs/tnc.c
@@ -1104,8 +1104,9 @@ static struct ubifs_znode *dirty_cow_bottom_up(struct ubifs_info *c,
1104 ubifs_assert(znode); 1104 ubifs_assert(znode);
1105 if (c->zroot.znode->level > BOTTOM_UP_HEIGHT) { 1105 if (c->zroot.znode->level > BOTTOM_UP_HEIGHT) {
1106 kfree(c->bottom_up_buf); 1106 kfree(c->bottom_up_buf);
1107 c->bottom_up_buf = kmalloc(c->zroot.znode->level * sizeof(int), 1107 c->bottom_up_buf = kmalloc_array(c->zroot.znode->level,
1108 GFP_NOFS); 1108 sizeof(int),
1109 GFP_NOFS);
1109 if (!c->bottom_up_buf) 1110 if (!c->bottom_up_buf)
1110 return ERR_PTR(-ENOMEM); 1111 return ERR_PTR(-ENOMEM);
1111 path = c->bottom_up_buf; 1112 path = c->bottom_up_buf;
diff --git a/fs/ubifs/tnc_commit.c b/fs/ubifs/tnc_commit.c
index aa31f60220ef..a9df94ad46a3 100644
--- a/fs/ubifs/tnc_commit.c
+++ b/fs/ubifs/tnc_commit.c
@@ -366,7 +366,8 @@ static int layout_in_gaps(struct ubifs_info *c, int cnt)
366 366
367 dbg_gc("%d znodes to write", cnt); 367 dbg_gc("%d znodes to write", cnt);
368 368
369 c->gap_lebs = kmalloc(sizeof(int) * (c->lst.idx_lebs + 1), GFP_NOFS); 369 c->gap_lebs = kmalloc_array(c->lst.idx_lebs + 1, sizeof(int),
370 GFP_NOFS);
370 if (!c->gap_lebs) 371 if (!c->gap_lebs)
371 return -ENOMEM; 372 return -ENOMEM;
372 373
@@ -674,7 +675,7 @@ static int alloc_idx_lebs(struct ubifs_info *c, int cnt)
674 dbg_cmt("need about %d empty LEBS for TNC commit", leb_cnt); 675 dbg_cmt("need about %d empty LEBS for TNC commit", leb_cnt);
675 if (!leb_cnt) 676 if (!leb_cnt)
676 return 0; 677 return 0;
677 c->ilebs = kmalloc(leb_cnt * sizeof(int), GFP_NOFS); 678 c->ilebs = kmalloc_array(leb_cnt, sizeof(int), GFP_NOFS);
678 if (!c->ilebs) 679 if (!c->ilebs)
679 return -ENOMEM; 680 return -ENOMEM;
680 for (i = 0; i < leb_cnt; i++) { 681 for (i = 0; i < leb_cnt; i++) {
diff --git a/fs/udf/super.c b/fs/udf/super.c
index 0d27d41f5c6e..fc77ea736da7 100644
--- a/fs/udf/super.c
+++ b/fs/udf/super.c
@@ -1585,7 +1585,7 @@ static struct udf_vds_record *handle_partition_descriptor(
1585 struct udf_vds_record *new_loc; 1585 struct udf_vds_record *new_loc;
1586 unsigned int new_size = ALIGN(partnum, PART_DESC_ALLOC_STEP); 1586 unsigned int new_size = ALIGN(partnum, PART_DESC_ALLOC_STEP);
1587 1587
1588 new_loc = kzalloc(sizeof(*new_loc) * new_size, GFP_KERNEL); 1588 new_loc = kcalloc(new_size, sizeof(*new_loc), GFP_KERNEL);
1589 if (!new_loc) 1589 if (!new_loc)
1590 return ERR_PTR(-ENOMEM); 1590 return ERR_PTR(-ENOMEM);
1591 memcpy(new_loc, data->part_descs_loc, 1591 memcpy(new_loc, data->part_descs_loc,
@@ -1644,8 +1644,9 @@ static noinline int udf_process_sequence(
1644 1644
1645 memset(data.vds, 0, sizeof(struct udf_vds_record) * VDS_POS_LENGTH); 1645 memset(data.vds, 0, sizeof(struct udf_vds_record) * VDS_POS_LENGTH);
1646 data.size_part_descs = PART_DESC_ALLOC_STEP; 1646 data.size_part_descs = PART_DESC_ALLOC_STEP;
1647 data.part_descs_loc = kzalloc(sizeof(*data.part_descs_loc) * 1647 data.part_descs_loc = kcalloc(data.size_part_descs,
1648 data.size_part_descs, GFP_KERNEL); 1648 sizeof(*data.part_descs_loc),
1649 GFP_KERNEL);
1649 if (!data.part_descs_loc) 1650 if (!data.part_descs_loc)
1650 return -ENOMEM; 1651 return -ENOMEM;
1651 1652
diff --git a/fs/ufs/super.c b/fs/ufs/super.c
index 8254b8b3690f..488088141451 100644
--- a/fs/ufs/super.c
+++ b/fs/ufs/super.c
@@ -541,7 +541,9 @@ static int ufs_read_cylinder_structures(struct super_block *sb)
541 * Read cylinder group (we read only first fragment from block 541 * Read cylinder group (we read only first fragment from block
542 * at this time) and prepare internal data structures for cg caching. 542 * at this time) and prepare internal data structures for cg caching.
543 */ 543 */
544 if (!(sbi->s_ucg = kmalloc (sizeof(struct buffer_head *) * uspi->s_ncg, GFP_NOFS))) 544 sbi->s_ucg = kmalloc_array(uspi->s_ncg, sizeof(struct buffer_head *),
545 GFP_NOFS);
546 if (!sbi->s_ucg)
545 goto failed; 547 goto failed;
546 for (i = 0; i < uspi->s_ncg; i++) 548 for (i = 0; i < uspi->s_ncg; i++)
547 sbi->s_ucg[i] = NULL; 549 sbi->s_ucg[i] = NULL;
diff --git a/include/linux/mm.h b/include/linux/mm.h
index 0e493884e6e1..a0fbb9ffe380 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -575,6 +575,11 @@ static inline void *kvmalloc_array(size_t n, size_t size, gfp_t flags)
575 return kvmalloc(bytes, flags); 575 return kvmalloc(bytes, flags);
576} 576}
577 577
578static inline void *kvcalloc(size_t n, size_t size, gfp_t flags)
579{
580 return kvmalloc_array(n, size, flags | __GFP_ZERO);
581}
582
578extern void kvfree(const void *addr); 583extern void kvfree(const void *addr);
579 584
580static inline atomic_t *compound_mapcount_ptr(struct page *page) 585static inline atomic_t *compound_mapcount_ptr(struct page *page)
diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h
index 2043e1a8f851..4c6241bc2039 100644
--- a/include/rdma/ib_verbs.h
+++ b/include/rdma/ib_verbs.h
@@ -2093,10 +2093,7 @@ struct ib_flow_attr {
2093 u32 flags; 2093 u32 flags;
2094 u8 num_of_specs; 2094 u8 num_of_specs;
2095 u8 port; 2095 u8 port;
2096 /* Following are the optional layers according to user request 2096 union ib_flow_spec flows[];
2097 * struct ib_flow_spec_xxx
2098 * struct ib_flow_spec_yyy
2099 */
2100}; 2097};
2101 2098
2102struct ib_flow { 2099struct ib_flow {
diff --git a/ipc/sem.c b/ipc/sem.c
index cfd94d48a9aa..59a3cd1d3252 100644
--- a/ipc/sem.c
+++ b/ipc/sem.c
@@ -1945,7 +1945,7 @@ static long do_semtimedop(int semid, struct sembuf __user *tsops,
1945 if (nsops > ns->sc_semopm) 1945 if (nsops > ns->sc_semopm)
1946 return -E2BIG; 1946 return -E2BIG;
1947 if (nsops > SEMOPM_FAST) { 1947 if (nsops > SEMOPM_FAST) {
1948 sops = kvmalloc(sizeof(*sops)*nsops, GFP_KERNEL); 1948 sops = kvmalloc_array(nsops, sizeof(*sops), GFP_KERNEL);
1949 if (sops == NULL) 1949 if (sops == NULL)
1950 return -ENOMEM; 1950 return -ENOMEM;
1951 } 1951 }
diff --git a/kernel/bpf/btf.c b/kernel/bpf/btf.c
index 8653ab004c73..2d49d18b793a 100644
--- a/kernel/bpf/btf.c
+++ b/kernel/bpf/btf.c
@@ -608,7 +608,7 @@ static int btf_add_type(struct btf_verifier_env *env, struct btf_type *t)
608 new_size = min_t(u32, BTF_MAX_TYPE, 608 new_size = min_t(u32, BTF_MAX_TYPE,
609 btf->types_size + expand_by); 609 btf->types_size + expand_by);
610 610
611 new_types = kvzalloc(new_size * sizeof(*new_types), 611 new_types = kvcalloc(new_size, sizeof(*new_types),
612 GFP_KERNEL | __GFP_NOWARN); 612 GFP_KERNEL | __GFP_NOWARN);
613 if (!new_types) 613 if (!new_types)
614 return -ENOMEM; 614 return -ENOMEM;
@@ -698,17 +698,17 @@ static int env_resolve_init(struct btf_verifier_env *env)
698 u8 *visit_states = NULL; 698 u8 *visit_states = NULL;
699 699
700 /* +1 for btf_void */ 700 /* +1 for btf_void */
701 resolved_sizes = kvzalloc((nr_types + 1) * sizeof(*resolved_sizes), 701 resolved_sizes = kvcalloc(nr_types + 1, sizeof(*resolved_sizes),
702 GFP_KERNEL | __GFP_NOWARN); 702 GFP_KERNEL | __GFP_NOWARN);
703 if (!resolved_sizes) 703 if (!resolved_sizes)
704 goto nomem; 704 goto nomem;
705 705
706 resolved_ids = kvzalloc((nr_types + 1) * sizeof(*resolved_ids), 706 resolved_ids = kvcalloc(nr_types + 1, sizeof(*resolved_ids),
707 GFP_KERNEL | __GFP_NOWARN); 707 GFP_KERNEL | __GFP_NOWARN);
708 if (!resolved_ids) 708 if (!resolved_ids)
709 goto nomem; 709 goto nomem;
710 710
711 visit_states = kvzalloc((nr_types + 1) * sizeof(*visit_states), 711 visit_states = kvcalloc(nr_types + 1, sizeof(*visit_states),
712 GFP_KERNEL | __GFP_NOWARN); 712 GFP_KERNEL | __GFP_NOWARN);
713 if (!visit_states) 713 if (!visit_states)
714 goto nomem; 714 goto nomem;
diff --git a/kernel/bpf/lpm_trie.c b/kernel/bpf/lpm_trie.c
index b4b5b81e7251..1603492c9cc7 100644
--- a/kernel/bpf/lpm_trie.c
+++ b/kernel/bpf/lpm_trie.c
@@ -623,8 +623,9 @@ static int trie_get_next_key(struct bpf_map *map, void *_key, void *_next_key)
623 if (!key || key->prefixlen > trie->max_prefixlen) 623 if (!key || key->prefixlen > trie->max_prefixlen)
624 goto find_leftmost; 624 goto find_leftmost;
625 625
626 node_stack = kmalloc(trie->max_prefixlen * sizeof(struct lpm_trie_node *), 626 node_stack = kmalloc_array(trie->max_prefixlen,
627 GFP_ATOMIC | __GFP_NOWARN); 627 sizeof(struct lpm_trie_node *),
628 GFP_ATOMIC | __GFP_NOWARN);
628 if (!node_stack) 629 if (!node_stack)
629 return -ENOMEM; 630 return -ENOMEM;
630 631
diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c
index cced0c1e63e2..9e2bf834f13a 100644
--- a/kernel/bpf/verifier.c
+++ b/kernel/bpf/verifier.c
@@ -5206,7 +5206,8 @@ static int adjust_insn_aux_data(struct bpf_verifier_env *env, u32 prog_len,
5206 5206
5207 if (cnt == 1) 5207 if (cnt == 1)
5208 return 0; 5208 return 0;
5209 new_data = vzalloc(sizeof(struct bpf_insn_aux_data) * prog_len); 5209 new_data = vzalloc(array_size(prog_len,
5210 sizeof(struct bpf_insn_aux_data)));
5210 if (!new_data) 5211 if (!new_data)
5211 return -ENOMEM; 5212 return -ENOMEM;
5212 memcpy(new_data, old_data, sizeof(struct bpf_insn_aux_data) * off); 5213 memcpy(new_data, old_data, sizeof(struct bpf_insn_aux_data) * off);
@@ -5447,7 +5448,7 @@ static int jit_subprogs(struct bpf_verifier_env *env)
5447 insn->imm = 1; 5448 insn->imm = 1;
5448 } 5449 }
5449 5450
5450 func = kzalloc(sizeof(prog) * env->subprog_cnt, GFP_KERNEL); 5451 func = kcalloc(env->subprog_cnt, sizeof(prog), GFP_KERNEL);
5451 if (!func) 5452 if (!func)
5452 return -ENOMEM; 5453 return -ENOMEM;
5453 5454
@@ -5870,8 +5871,9 @@ int bpf_check(struct bpf_prog **prog, union bpf_attr *attr)
5870 return -ENOMEM; 5871 return -ENOMEM;
5871 log = &env->log; 5872 log = &env->log;
5872 5873
5873 env->insn_aux_data = vzalloc(sizeof(struct bpf_insn_aux_data) * 5874 env->insn_aux_data =
5874 (*prog)->len); 5875 vzalloc(array_size(sizeof(struct bpf_insn_aux_data),
5876 (*prog)->len));
5875 ret = -ENOMEM; 5877 ret = -ENOMEM;
5876 if (!env->insn_aux_data) 5878 if (!env->insn_aux_data)
5877 goto err_free_env; 5879 goto err_free_env;
diff --git a/kernel/cgroup/cgroup-v1.c b/kernel/cgroup/cgroup-v1.c
index e06c97f3ed1a..8b4f0768efd6 100644
--- a/kernel/cgroup/cgroup-v1.c
+++ b/kernel/cgroup/cgroup-v1.c
@@ -195,9 +195,9 @@ struct cgroup_pidlist {
195static void *pidlist_allocate(int count) 195static void *pidlist_allocate(int count)
196{ 196{
197 if (PIDLIST_TOO_LARGE(count)) 197 if (PIDLIST_TOO_LARGE(count))
198 return vmalloc(count * sizeof(pid_t)); 198 return vmalloc(array_size(count, sizeof(pid_t)));
199 else 199 else
200 return kmalloc(count * sizeof(pid_t), GFP_KERNEL); 200 return kmalloc_array(count, sizeof(pid_t), GFP_KERNEL);
201} 201}
202 202
203static void pidlist_free(void *p) 203static void pidlist_free(void *p)
diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c
index b42037e6e81d..d8b12e0d39cd 100644
--- a/kernel/cgroup/cpuset.c
+++ b/kernel/cgroup/cpuset.c
@@ -683,7 +683,7 @@ static int generate_sched_domains(cpumask_var_t **domains,
683 goto done; 683 goto done;
684 } 684 }
685 685
686 csa = kmalloc(nr_cpusets() * sizeof(cp), GFP_KERNEL); 686 csa = kmalloc_array(nr_cpusets(), sizeof(cp), GFP_KERNEL);
687 if (!csa) 687 if (!csa)
688 goto done; 688 goto done;
689 csn = 0; 689 csn = 0;
@@ -753,7 +753,8 @@ restart:
753 * The rest of the code, including the scheduler, can deal with 753 * The rest of the code, including the scheduler, can deal with
754 * dattr==NULL case. No need to abort if alloc fails. 754 * dattr==NULL case. No need to abort if alloc fails.
755 */ 755 */
756 dattr = kmalloc(ndoms * sizeof(struct sched_domain_attr), GFP_KERNEL); 756 dattr = kmalloc_array(ndoms, sizeof(struct sched_domain_attr),
757 GFP_KERNEL);
757 758
758 for (nslot = 0, i = 0; i < csn; i++) { 759 for (nslot = 0, i = 0; i < csn; i++) {
759 struct cpuset *a = csa[i]; 760 struct cpuset *a = csa[i];
diff --git a/kernel/debug/kdb/kdb_main.c b/kernel/debug/kdb/kdb_main.c
index e405677ee08d..2ddfce8f1e8f 100644
--- a/kernel/debug/kdb/kdb_main.c
+++ b/kernel/debug/kdb/kdb_main.c
@@ -691,7 +691,7 @@ static int kdb_defcmd2(const char *cmdstr, const char *argv0)
691 } 691 }
692 if (!s->usable) 692 if (!s->usable)
693 return KDB_NOTIMP; 693 return KDB_NOTIMP;
694 s->command = kzalloc((s->count + 1) * sizeof(*(s->command)), GFP_KDB); 694 s->command = kcalloc(s->count + 1, sizeof(*(s->command)), GFP_KDB);
695 if (!s->command) { 695 if (!s->command) {
696 kdb_printf("Could not allocate new kdb_defcmd table for %s\n", 696 kdb_printf("Could not allocate new kdb_defcmd table for %s\n",
697 cmdstr); 697 cmdstr);
@@ -729,8 +729,8 @@ static int kdb_defcmd(int argc, const char **argv)
729 kdb_printf("Command only available during kdb_init()\n"); 729 kdb_printf("Command only available during kdb_init()\n");
730 return KDB_NOTIMP; 730 return KDB_NOTIMP;
731 } 731 }
732 defcmd_set = kmalloc((defcmd_set_count + 1) * sizeof(*defcmd_set), 732 defcmd_set = kmalloc_array(defcmd_set_count + 1, sizeof(*defcmd_set),
733 GFP_KDB); 733 GFP_KDB);
734 if (!defcmd_set) 734 if (!defcmd_set)
735 goto fail_defcmd; 735 goto fail_defcmd;
736 memcpy(defcmd_set, save_defcmd_set, 736 memcpy(defcmd_set, save_defcmd_set,
@@ -2706,8 +2706,11 @@ int kdb_register_flags(char *cmd,
2706 } 2706 }
2707 2707
2708 if (i >= kdb_max_commands) { 2708 if (i >= kdb_max_commands) {
2709 kdbtab_t *new = kmalloc((kdb_max_commands - KDB_BASE_CMD_MAX + 2709 kdbtab_t *new = kmalloc_array(kdb_max_commands -
2710 kdb_command_extend) * sizeof(*new), GFP_KDB); 2710 KDB_BASE_CMD_MAX +
2711 kdb_command_extend,
2712 sizeof(*new),
2713 GFP_KDB);
2711 if (!new) { 2714 if (!new) {
2712 kdb_printf("Could not allocate new kdb_command " 2715 kdb_printf("Could not allocate new kdb_command "
2713 "table\n"); 2716 "table\n");
diff --git a/kernel/events/ring_buffer.c b/kernel/events/ring_buffer.c
index 1d8ca9ea9979..045a37e9ddee 100644
--- a/kernel/events/ring_buffer.c
+++ b/kernel/events/ring_buffer.c
@@ -614,7 +614,8 @@ int rb_alloc_aux(struct ring_buffer *rb, struct perf_event *event,
614 } 614 }
615 } 615 }
616 616
617 rb->aux_pages = kzalloc_node(nr_pages * sizeof(void *), GFP_KERNEL, node); 617 rb->aux_pages = kcalloc_node(nr_pages, sizeof(void *), GFP_KERNEL,
618 node);
618 if (!rb->aux_pages) 619 if (!rb->aux_pages)
619 return -ENOMEM; 620 return -ENOMEM;
620 621
diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c
index 1725b902983f..ccc579a7d32e 100644
--- a/kernel/events/uprobes.c
+++ b/kernel/events/uprobes.c
@@ -1184,7 +1184,8 @@ static struct xol_area *__create_xol_area(unsigned long vaddr)
1184 if (unlikely(!area)) 1184 if (unlikely(!area))
1185 goto out; 1185 goto out;
1186 1186
1187 area->bitmap = kzalloc(BITS_TO_LONGS(UINSNS_PER_PAGE) * sizeof(long), GFP_KERNEL); 1187 area->bitmap = kcalloc(BITS_TO_LONGS(UINSNS_PER_PAGE), sizeof(long),
1188 GFP_KERNEL);
1188 if (!area->bitmap) 1189 if (!area->bitmap)
1189 goto free_area; 1190 goto free_area;
1190 1191
diff --git a/kernel/fail_function.c b/kernel/fail_function.c
index 1d5632d8bbcc..5349c91c2298 100644
--- a/kernel/fail_function.c
+++ b/kernel/fail_function.c
@@ -258,7 +258,7 @@ static ssize_t fei_write(struct file *file, const char __user *buffer,
258 /* cut off if it is too long */ 258 /* cut off if it is too long */
259 if (count > KSYM_NAME_LEN) 259 if (count > KSYM_NAME_LEN)
260 count = KSYM_NAME_LEN; 260 count = KSYM_NAME_LEN;
261 buf = kmalloc(sizeof(char) * (count + 1), GFP_KERNEL); 261 buf = kmalloc(count + 1, GFP_KERNEL);
262 if (!buf) 262 if (!buf)
263 return -ENOMEM; 263 return -ENOMEM;
264 264
diff --git a/kernel/kexec_file.c b/kernel/kexec_file.c
index 75d8e7cf040e..c6a3b6851372 100644
--- a/kernel/kexec_file.c
+++ b/kernel/kexec_file.c
@@ -793,7 +793,7 @@ static int kexec_purgatory_setup_sechdrs(struct purgatory_info *pi,
793 * The section headers in kexec_purgatory are read-only. In order to 793 * The section headers in kexec_purgatory are read-only. In order to
794 * have them modifiable make a temporary copy. 794 * have them modifiable make a temporary copy.
795 */ 795 */
796 sechdrs = vzalloc(pi->ehdr->e_shnum * sizeof(Elf_Shdr)); 796 sechdrs = vzalloc(array_size(sizeof(Elf_Shdr), pi->ehdr->e_shnum));
797 if (!sechdrs) 797 if (!sechdrs)
798 return -ENOMEM; 798 return -ENOMEM;
799 memcpy(sechdrs, (void *)pi->ehdr + pi->ehdr->e_shoff, 799 memcpy(sechdrs, (void *)pi->ehdr + pi->ehdr->e_shoff,
diff --git a/kernel/locking/locktorture.c b/kernel/locking/locktorture.c
index 6850ffd69125..8402b3349dca 100644
--- a/kernel/locking/locktorture.c
+++ b/kernel/locking/locktorture.c
@@ -913,7 +913,9 @@ static int __init lock_torture_init(void)
913 /* Initialize the statistics so that each run gets its own numbers. */ 913 /* Initialize the statistics so that each run gets its own numbers. */
914 if (nwriters_stress) { 914 if (nwriters_stress) {
915 lock_is_write_held = 0; 915 lock_is_write_held = 0;
916 cxt.lwsa = kmalloc(sizeof(*cxt.lwsa) * cxt.nrealwriters_stress, GFP_KERNEL); 916 cxt.lwsa = kmalloc_array(cxt.nrealwriters_stress,
917 sizeof(*cxt.lwsa),
918 GFP_KERNEL);
917 if (cxt.lwsa == NULL) { 919 if (cxt.lwsa == NULL) {
918 VERBOSE_TOROUT_STRING("cxt.lwsa: Out of memory"); 920 VERBOSE_TOROUT_STRING("cxt.lwsa: Out of memory");
919 firsterr = -ENOMEM; 921 firsterr = -ENOMEM;
@@ -942,7 +944,9 @@ static int __init lock_torture_init(void)
942 944
943 if (nreaders_stress) { 945 if (nreaders_stress) {
944 lock_is_read_held = 0; 946 lock_is_read_held = 0;
945 cxt.lrsa = kmalloc(sizeof(*cxt.lrsa) * cxt.nrealreaders_stress, GFP_KERNEL); 947 cxt.lrsa = kmalloc_array(cxt.nrealreaders_stress,
948 sizeof(*cxt.lrsa),
949 GFP_KERNEL);
946 if (cxt.lrsa == NULL) { 950 if (cxt.lrsa == NULL) {
947 VERBOSE_TOROUT_STRING("cxt.lrsa: Out of memory"); 951 VERBOSE_TOROUT_STRING("cxt.lrsa: Out of memory");
948 firsterr = -ENOMEM; 952 firsterr = -ENOMEM;
@@ -985,7 +989,8 @@ static int __init lock_torture_init(void)
985 } 989 }
986 990
987 if (nwriters_stress) { 991 if (nwriters_stress) {
988 writer_tasks = kzalloc(cxt.nrealwriters_stress * sizeof(writer_tasks[0]), 992 writer_tasks = kcalloc(cxt.nrealwriters_stress,
993 sizeof(writer_tasks[0]),
989 GFP_KERNEL); 994 GFP_KERNEL);
990 if (writer_tasks == NULL) { 995 if (writer_tasks == NULL) {
991 VERBOSE_TOROUT_ERRSTRING("writer_tasks: Out of memory"); 996 VERBOSE_TOROUT_ERRSTRING("writer_tasks: Out of memory");
@@ -995,7 +1000,8 @@ static int __init lock_torture_init(void)
995 } 1000 }
996 1001
997 if (cxt.cur_ops->readlock) { 1002 if (cxt.cur_ops->readlock) {
998 reader_tasks = kzalloc(cxt.nrealreaders_stress * sizeof(reader_tasks[0]), 1003 reader_tasks = kcalloc(cxt.nrealreaders_stress,
1004 sizeof(reader_tasks[0]),
999 GFP_KERNEL); 1005 GFP_KERNEL);
1000 if (reader_tasks == NULL) { 1006 if (reader_tasks == NULL) {
1001 VERBOSE_TOROUT_ERRSTRING("reader_tasks: Out of memory"); 1007 VERBOSE_TOROUT_ERRSTRING("reader_tasks: Out of memory");
diff --git a/kernel/power/swap.c b/kernel/power/swap.c
index 1efcb5b0c3ed..c2bcf97d24c8 100644
--- a/kernel/power/swap.c
+++ b/kernel/power/swap.c
@@ -698,7 +698,7 @@ static int save_image_lzo(struct swap_map_handle *handle,
698 goto out_clean; 698 goto out_clean;
699 } 699 }
700 700
701 data = vmalloc(sizeof(*data) * nr_threads); 701 data = vmalloc(array_size(nr_threads, sizeof(*data)));
702 if (!data) { 702 if (!data) {
703 pr_err("Failed to allocate LZO data\n"); 703 pr_err("Failed to allocate LZO data\n");
704 ret = -ENOMEM; 704 ret = -ENOMEM;
@@ -1183,14 +1183,14 @@ static int load_image_lzo(struct swap_map_handle *handle,
1183 nr_threads = num_online_cpus() - 1; 1183 nr_threads = num_online_cpus() - 1;
1184 nr_threads = clamp_val(nr_threads, 1, LZO_THREADS); 1184 nr_threads = clamp_val(nr_threads, 1, LZO_THREADS);
1185 1185
1186 page = vmalloc(sizeof(*page) * LZO_MAX_RD_PAGES); 1186 page = vmalloc(array_size(LZO_MAX_RD_PAGES, sizeof(*page)));
1187 if (!page) { 1187 if (!page) {
1188 pr_err("Failed to allocate LZO page\n"); 1188 pr_err("Failed to allocate LZO page\n");
1189 ret = -ENOMEM; 1189 ret = -ENOMEM;
1190 goto out_clean; 1190 goto out_clean;
1191 } 1191 }
1192 1192
1193 data = vmalloc(sizeof(*data) * nr_threads); 1193 data = vmalloc(array_size(nr_threads, sizeof(*data)));
1194 if (!data) { 1194 if (!data) {
1195 pr_err("Failed to allocate LZO data\n"); 1195 pr_err("Failed to allocate LZO data\n");
1196 ret = -ENOMEM; 1196 ret = -ENOMEM;
diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c
index e628fcfd1bde..42fcb7f05fac 100644
--- a/kernel/rcu/rcutorture.c
+++ b/kernel/rcu/rcutorture.c
@@ -831,8 +831,9 @@ rcu_torture_cbflood(void *arg)
831 cbflood_intra_holdoff > 0 && 831 cbflood_intra_holdoff > 0 &&
832 cur_ops->call && 832 cur_ops->call &&
833 cur_ops->cb_barrier) { 833 cur_ops->cb_barrier) {
834 rhp = vmalloc(sizeof(*rhp) * 834 rhp = vmalloc(array3_size(cbflood_n_burst,
835 cbflood_n_burst * cbflood_n_per_burst); 835 cbflood_n_per_burst,
836 sizeof(*rhp)));
836 err = !rhp; 837 err = !rhp;
837 } 838 }
838 if (err) { 839 if (err) {
diff --git a/kernel/relay.c b/kernel/relay.c
index c955b10c973c..9f5326e8a036 100644
--- a/kernel/relay.c
+++ b/kernel/relay.c
@@ -169,7 +169,8 @@ static struct rchan_buf *relay_create_buf(struct rchan *chan)
169 buf = kzalloc(sizeof(struct rchan_buf), GFP_KERNEL); 169 buf = kzalloc(sizeof(struct rchan_buf), GFP_KERNEL);
170 if (!buf) 170 if (!buf)
171 return NULL; 171 return NULL;
172 buf->padding = kmalloc(chan->n_subbufs * sizeof(size_t *), GFP_KERNEL); 172 buf->padding = kmalloc_array(chan->n_subbufs, sizeof(size_t *),
173 GFP_KERNEL);
173 if (!buf->padding) 174 if (!buf->padding)
174 goto free_buf; 175 goto free_buf;
175 176
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index e497c05aab7f..1866e64792a7 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -10215,10 +10215,10 @@ int alloc_fair_sched_group(struct task_group *tg, struct task_group *parent)
10215 struct cfs_rq *cfs_rq; 10215 struct cfs_rq *cfs_rq;
10216 int i; 10216 int i;
10217 10217
10218 tg->cfs_rq = kzalloc(sizeof(cfs_rq) * nr_cpu_ids, GFP_KERNEL); 10218 tg->cfs_rq = kcalloc(nr_cpu_ids, sizeof(cfs_rq), GFP_KERNEL);
10219 if (!tg->cfs_rq) 10219 if (!tg->cfs_rq)
10220 goto err; 10220 goto err;
10221 tg->se = kzalloc(sizeof(se) * nr_cpu_ids, GFP_KERNEL); 10221 tg->se = kcalloc(nr_cpu_ids, sizeof(se), GFP_KERNEL);
10222 if (!tg->se) 10222 if (!tg->se)
10223 goto err; 10223 goto err;
10224 10224
diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
index ef3c4e6f5345..47556b0c9a95 100644
--- a/kernel/sched/rt.c
+++ b/kernel/sched/rt.c
@@ -183,10 +183,10 @@ int alloc_rt_sched_group(struct task_group *tg, struct task_group *parent)
183 struct sched_rt_entity *rt_se; 183 struct sched_rt_entity *rt_se;
184 int i; 184 int i;
185 185
186 tg->rt_rq = kzalloc(sizeof(rt_rq) * nr_cpu_ids, GFP_KERNEL); 186 tg->rt_rq = kcalloc(nr_cpu_ids, sizeof(rt_rq), GFP_KERNEL);
187 if (!tg->rt_rq) 187 if (!tg->rt_rq)
188 goto err; 188 goto err;
189 tg->rt_se = kzalloc(sizeof(rt_se) * nr_cpu_ids, GFP_KERNEL); 189 tg->rt_se = kcalloc(nr_cpu_ids, sizeof(rt_se), GFP_KERNEL);
190 if (!tg->rt_se) 190 if (!tg->rt_se)
191 goto err; 191 goto err;
192 192
diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c
index 61a1125c1ae4..05a831427bc7 100644
--- a/kernel/sched/topology.c
+++ b/kernel/sched/topology.c
@@ -1750,7 +1750,7 @@ cpumask_var_t *alloc_sched_domains(unsigned int ndoms)
1750 int i; 1750 int i;
1751 cpumask_var_t *doms; 1751 cpumask_var_t *doms;
1752 1752
1753 doms = kmalloc(sizeof(*doms) * ndoms, GFP_KERNEL); 1753 doms = kmalloc_array(ndoms, sizeof(*doms), GFP_KERNEL);
1754 if (!doms) 1754 if (!doms)
1755 return NULL; 1755 return NULL;
1756 for (i = 0; i < ndoms; i++) { 1756 for (i = 0; i < ndoms; i++) {
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index 6a78cf70761d..2d9837c0aff4 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -3047,7 +3047,8 @@ int proc_do_large_bitmap(struct ctl_table *table, int write,
3047 if (IS_ERR(kbuf)) 3047 if (IS_ERR(kbuf))
3048 return PTR_ERR(kbuf); 3048 return PTR_ERR(kbuf);
3049 3049
3050 tmp_bitmap = kzalloc(BITS_TO_LONGS(bitmap_len) * sizeof(unsigned long), 3050 tmp_bitmap = kcalloc(BITS_TO_LONGS(bitmap_len),
3051 sizeof(unsigned long),
3051 GFP_KERNEL); 3052 GFP_KERNEL);
3052 if (!tmp_bitmap) { 3053 if (!tmp_bitmap) {
3053 kfree(kbuf); 3054 kfree(kbuf);
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index 8d83bcf9ef69..efed9c1cfb7e 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -728,7 +728,7 @@ static int ftrace_profile_init_cpu(int cpu)
728 */ 728 */
729 size = FTRACE_PROFILE_HASH_SIZE; 729 size = FTRACE_PROFILE_HASH_SIZE;
730 730
731 stat->hash = kzalloc(sizeof(struct hlist_head) * size, GFP_KERNEL); 731 stat->hash = kcalloc(size, sizeof(struct hlist_head), GFP_KERNEL);
732 732
733 if (!stat->hash) 733 if (!stat->hash)
734 return -ENOMEM; 734 return -ENOMEM;
@@ -6830,9 +6830,10 @@ static int alloc_retstack_tasklist(struct ftrace_ret_stack **ret_stack_list)
6830 struct task_struct *g, *t; 6830 struct task_struct *g, *t;
6831 6831
6832 for (i = 0; i < FTRACE_RETSTACK_ALLOC_SIZE; i++) { 6832 for (i = 0; i < FTRACE_RETSTACK_ALLOC_SIZE; i++) {
6833 ret_stack_list[i] = kmalloc(FTRACE_RETFUNC_DEPTH 6833 ret_stack_list[i] =
6834 * sizeof(struct ftrace_ret_stack), 6834 kmalloc_array(FTRACE_RETFUNC_DEPTH,
6835 GFP_KERNEL); 6835 sizeof(struct ftrace_ret_stack),
6836 GFP_KERNEL);
6836 if (!ret_stack_list[i]) { 6837 if (!ret_stack_list[i]) {
6837 start = 0; 6838 start = 0;
6838 end = i; 6839 end = i;
@@ -6904,9 +6905,9 @@ static int start_graph_tracing(void)
6904 struct ftrace_ret_stack **ret_stack_list; 6905 struct ftrace_ret_stack **ret_stack_list;
6905 int ret, cpu; 6906 int ret, cpu;
6906 6907
6907 ret_stack_list = kmalloc(FTRACE_RETSTACK_ALLOC_SIZE * 6908 ret_stack_list = kmalloc_array(FTRACE_RETSTACK_ALLOC_SIZE,
6908 sizeof(struct ftrace_ret_stack *), 6909 sizeof(struct ftrace_ret_stack *),
6909 GFP_KERNEL); 6910 GFP_KERNEL);
6910 6911
6911 if (!ret_stack_list) 6912 if (!ret_stack_list)
6912 return -ENOMEM; 6913 return -ENOMEM;
@@ -7088,9 +7089,10 @@ void ftrace_graph_init_idle_task(struct task_struct *t, int cpu)
7088 7089
7089 ret_stack = per_cpu(idle_ret_stack, cpu); 7090 ret_stack = per_cpu(idle_ret_stack, cpu);
7090 if (!ret_stack) { 7091 if (!ret_stack) {
7091 ret_stack = kmalloc(FTRACE_RETFUNC_DEPTH 7092 ret_stack =
7092 * sizeof(struct ftrace_ret_stack), 7093 kmalloc_array(FTRACE_RETFUNC_DEPTH,
7093 GFP_KERNEL); 7094 sizeof(struct ftrace_ret_stack),
7095 GFP_KERNEL);
7094 if (!ret_stack) 7096 if (!ret_stack)
7095 return; 7097 return;
7096 per_cpu(idle_ret_stack, cpu) = ret_stack; 7098 per_cpu(idle_ret_stack, cpu) = ret_stack;
@@ -7109,9 +7111,9 @@ void ftrace_graph_init_task(struct task_struct *t)
7109 if (ftrace_graph_active) { 7111 if (ftrace_graph_active) {
7110 struct ftrace_ret_stack *ret_stack; 7112 struct ftrace_ret_stack *ret_stack;
7111 7113
7112 ret_stack = kmalloc(FTRACE_RETFUNC_DEPTH 7114 ret_stack = kmalloc_array(FTRACE_RETFUNC_DEPTH,
7113 * sizeof(struct ftrace_ret_stack), 7115 sizeof(struct ftrace_ret_stack),
7114 GFP_KERNEL); 7116 GFP_KERNEL);
7115 if (!ret_stack) 7117 if (!ret_stack)
7116 return; 7118 return;
7117 graph_init_task(t, ret_stack); 7119 graph_init_task(t, ret_stack);
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index 108ce3e1dc13..c9336e98ac59 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -1751,12 +1751,13 @@ static inline void set_cmdline(int idx, const char *cmdline)
1751static int allocate_cmdlines_buffer(unsigned int val, 1751static int allocate_cmdlines_buffer(unsigned int val,
1752 struct saved_cmdlines_buffer *s) 1752 struct saved_cmdlines_buffer *s)
1753{ 1753{
1754 s->map_cmdline_to_pid = kmalloc(val * sizeof(*s->map_cmdline_to_pid), 1754 s->map_cmdline_to_pid = kmalloc_array(val,
1755 GFP_KERNEL); 1755 sizeof(*s->map_cmdline_to_pid),
1756 GFP_KERNEL);
1756 if (!s->map_cmdline_to_pid) 1757 if (!s->map_cmdline_to_pid)
1757 return -ENOMEM; 1758 return -ENOMEM;
1758 1759
1759 s->saved_cmdlines = kmalloc(val * TASK_COMM_LEN, GFP_KERNEL); 1760 s->saved_cmdlines = kmalloc_array(TASK_COMM_LEN, val, GFP_KERNEL);
1760 if (!s->saved_cmdlines) { 1761 if (!s->saved_cmdlines) {
1761 kfree(s->map_cmdline_to_pid); 1762 kfree(s->map_cmdline_to_pid);
1762 return -ENOMEM; 1763 return -ENOMEM;
@@ -4360,7 +4361,8 @@ int set_tracer_flag(struct trace_array *tr, unsigned int mask, int enabled)
4360 4361
4361 if (mask == TRACE_ITER_RECORD_TGID) { 4362 if (mask == TRACE_ITER_RECORD_TGID) {
4362 if (!tgid_map) 4363 if (!tgid_map)
4363 tgid_map = kzalloc((PID_MAX_DEFAULT + 1) * sizeof(*tgid_map), 4364 tgid_map = kcalloc(PID_MAX_DEFAULT + 1,
4365 sizeof(*tgid_map),
4364 GFP_KERNEL); 4366 GFP_KERNEL);
4365 if (!tgid_map) { 4367 if (!tgid_map) {
4366 tr->trace_flags &= ~TRACE_ITER_RECORD_TGID; 4368 tr->trace_flags &= ~TRACE_ITER_RECORD_TGID;
@@ -5063,7 +5065,7 @@ trace_insert_eval_map_file(struct module *mod, struct trace_eval_map **start,
5063 * where the head holds the module and length of array, and the 5065 * where the head holds the module and length of array, and the
5064 * tail holds a pointer to the next list. 5066 * tail holds a pointer to the next list.
5065 */ 5067 */
5066 map_array = kmalloc(sizeof(*map_array) * (len + 2), GFP_KERNEL); 5068 map_array = kmalloc_array(len + 2, sizeof(*map_array), GFP_KERNEL);
5067 if (!map_array) { 5069 if (!map_array) {
5068 pr_warn("Unable to allocate trace eval mapping\n"); 5070 pr_warn("Unable to allocate trace eval mapping\n");
5069 return; 5071 return;
diff --git a/kernel/trace/trace_events_filter.c b/kernel/trace/trace_events_filter.c
index 0171407d231f..e1c818dbc0d7 100644
--- a/kernel/trace/trace_events_filter.c
+++ b/kernel/trace/trace_events_filter.c
@@ -436,15 +436,15 @@ predicate_parse(const char *str, int nr_parens, int nr_preds,
436 436
437 nr_preds += 2; /* For TRUE and FALSE */ 437 nr_preds += 2; /* For TRUE and FALSE */
438 438
439 op_stack = kmalloc(sizeof(*op_stack) * nr_parens, GFP_KERNEL); 439 op_stack = kmalloc_array(nr_parens, sizeof(*op_stack), GFP_KERNEL);
440 if (!op_stack) 440 if (!op_stack)
441 return ERR_PTR(-ENOMEM); 441 return ERR_PTR(-ENOMEM);
442 prog_stack = kmalloc(sizeof(*prog_stack) * nr_preds, GFP_KERNEL); 442 prog_stack = kmalloc_array(nr_preds, sizeof(*prog_stack), GFP_KERNEL);
443 if (!prog_stack) { 443 if (!prog_stack) {
444 parse_error(pe, -ENOMEM, 0); 444 parse_error(pe, -ENOMEM, 0);
445 goto out_free; 445 goto out_free;
446 } 446 }
447 inverts = kmalloc(sizeof(*inverts) * nr_preds, GFP_KERNEL); 447 inverts = kmalloc_array(nr_preds, sizeof(*inverts), GFP_KERNEL);
448 if (!inverts) { 448 if (!inverts) {
449 parse_error(pe, -ENOMEM, 0); 449 parse_error(pe, -ENOMEM, 0);
450 goto out_free; 450 goto out_free;
diff --git a/kernel/trace/tracing_map.c b/kernel/trace/tracing_map.c
index 5cadb1b8b5fe..752d8042bad4 100644
--- a/kernel/trace/tracing_map.c
+++ b/kernel/trace/tracing_map.c
@@ -1075,7 +1075,7 @@ int tracing_map_sort_entries(struct tracing_map *map,
1075 struct tracing_map_sort_entry *sort_entry, **entries; 1075 struct tracing_map_sort_entry *sort_entry, **entries;
1076 int i, n_entries, ret; 1076 int i, n_entries, ret;
1077 1077
1078 entries = vmalloc(map->max_elts * sizeof(sort_entry)); 1078 entries = vmalloc(array_size(sizeof(sort_entry), map->max_elts));
1079 if (!entries) 1079 if (!entries)
1080 return -ENOMEM; 1080 return -ENOMEM;
1081 1081
diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c
index 492c255e6c5a..c3d7583fcd21 100644
--- a/kernel/user_namespace.c
+++ b/kernel/user_namespace.c
@@ -764,8 +764,9 @@ static int insert_extent(struct uid_gid_map *map, struct uid_gid_extent *extent)
764 struct uid_gid_extent *forward; 764 struct uid_gid_extent *forward;
765 765
766 /* Allocate memory for 340 mappings. */ 766 /* Allocate memory for 340 mappings. */
767 forward = kmalloc(sizeof(struct uid_gid_extent) * 767 forward = kmalloc_array(UID_GID_MAP_MAX_EXTENTS,
768 UID_GID_MAP_MAX_EXTENTS, GFP_KERNEL); 768 sizeof(struct uid_gid_extent),
769 GFP_KERNEL);
769 if (!forward) 770 if (!forward)
770 return -ENOMEM; 771 return -ENOMEM;
771 772
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
index 465a28b4cd32..78b192071ef7 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -5638,7 +5638,7 @@ static void __init wq_numa_init(void)
5638 * available. Build one from cpu_to_node() which should have been 5638 * available. Build one from cpu_to_node() which should have been
5639 * fully initialized by now. 5639 * fully initialized by now.
5640 */ 5640 */
5641 tbl = kzalloc(nr_node_ids * sizeof(tbl[0]), GFP_KERNEL); 5641 tbl = kcalloc(nr_node_ids, sizeof(tbl[0]), GFP_KERNEL);
5642 BUG_ON(!tbl); 5642 BUG_ON(!tbl);
5643 5643
5644 for_each_node(node) 5644 for_each_node(node)
diff --git a/lib/argv_split.c b/lib/argv_split.c
index 5c35752a9414..1a19a0a93dc1 100644
--- a/lib/argv_split.c
+++ b/lib/argv_split.c
@@ -69,7 +69,7 @@ char **argv_split(gfp_t gfp, const char *str, int *argcp)
69 return NULL; 69 return NULL;
70 70
71 argc = count_argc(argv_str); 71 argc = count_argc(argv_str);
72 argv = kmalloc(sizeof(*argv) * (argc + 2), gfp); 72 argv = kmalloc_array(argc + 2, sizeof(*argv), gfp);
73 if (!argv) { 73 if (!argv) {
74 kfree(argv_str); 74 kfree(argv_str);
75 return NULL; 75 return NULL;
diff --git a/lib/interval_tree_test.c b/lib/interval_tree_test.c
index 835242e74aaa..75509a1511a3 100644
--- a/lib/interval_tree_test.c
+++ b/lib/interval_tree_test.c
@@ -64,11 +64,12 @@ static int interval_tree_test_init(void)
64 unsigned long results; 64 unsigned long results;
65 cycles_t time1, time2, time; 65 cycles_t time1, time2, time;
66 66
67 nodes = kmalloc(nnodes * sizeof(struct interval_tree_node), GFP_KERNEL); 67 nodes = kmalloc_array(nnodes, sizeof(struct interval_tree_node),
68 GFP_KERNEL);
68 if (!nodes) 69 if (!nodes)
69 return -ENOMEM; 70 return -ENOMEM;
70 71
71 queries = kmalloc(nsearches * sizeof(int), GFP_KERNEL); 72 queries = kmalloc_array(nsearches, sizeof(int), GFP_KERNEL);
72 if (!queries) { 73 if (!queries) {
73 kfree(nodes); 74 kfree(nodes);
74 return -ENOMEM; 75 return -ENOMEM;
diff --git a/lib/kfifo.c b/lib/kfifo.c
index b0f757bf7213..015656aa8182 100644
--- a/lib/kfifo.c
+++ b/lib/kfifo.c
@@ -54,7 +54,7 @@ int __kfifo_alloc(struct __kfifo *fifo, unsigned int size,
54 return -EINVAL; 54 return -EINVAL;
55 } 55 }
56 56
57 fifo->data = kmalloc(size * esize, gfp_mask); 57 fifo->data = kmalloc_array(esize, size, gfp_mask);
58 58
59 if (!fifo->data) { 59 if (!fifo->data) {
60 fifo->mask = 0; 60 fifo->mask = 0;
diff --git a/lib/lru_cache.c b/lib/lru_cache.c
index 28ba40b99337..2b10a4024c35 100644
--- a/lib/lru_cache.c
+++ b/lib/lru_cache.c
@@ -119,7 +119,7 @@ struct lru_cache *lc_create(const char *name, struct kmem_cache *cache,
119 slot = kcalloc(e_count, sizeof(struct hlist_head), GFP_KERNEL); 119 slot = kcalloc(e_count, sizeof(struct hlist_head), GFP_KERNEL);
120 if (!slot) 120 if (!slot)
121 goto out_fail; 121 goto out_fail;
122 element = kzalloc(e_count * sizeof(struct lc_element *), GFP_KERNEL); 122 element = kcalloc(e_count, sizeof(struct lc_element *), GFP_KERNEL);
123 if (!element) 123 if (!element)
124 goto out_fail; 124 goto out_fail;
125 125
diff --git a/lib/mpi/mpiutil.c b/lib/mpi/mpiutil.c
index 314f4dfa603e..20ed0f766787 100644
--- a/lib/mpi/mpiutil.c
+++ b/lib/mpi/mpiutil.c
@@ -91,14 +91,14 @@ int mpi_resize(MPI a, unsigned nlimbs)
91 return 0; /* no need to do it */ 91 return 0; /* no need to do it */
92 92
93 if (a->d) { 93 if (a->d) {
94 p = kmalloc(nlimbs * sizeof(mpi_limb_t), GFP_KERNEL); 94 p = kmalloc_array(nlimbs, sizeof(mpi_limb_t), GFP_KERNEL);
95 if (!p) 95 if (!p)
96 return -ENOMEM; 96 return -ENOMEM;
97 memcpy(p, a->d, a->alloced * sizeof(mpi_limb_t)); 97 memcpy(p, a->d, a->alloced * sizeof(mpi_limb_t));
98 kzfree(a->d); 98 kzfree(a->d);
99 a->d = p; 99 a->d = p;
100 } else { 100 } else {
101 a->d = kzalloc(nlimbs * sizeof(mpi_limb_t), GFP_KERNEL); 101 a->d = kcalloc(nlimbs, sizeof(mpi_limb_t), GFP_KERNEL);
102 if (!a->d) 102 if (!a->d)
103 return -ENOMEM; 103 return -ENOMEM;
104 } 104 }
diff --git a/lib/rbtree_test.c b/lib/rbtree_test.c
index 7d36c1e27ff6..b7055b2a07d3 100644
--- a/lib/rbtree_test.c
+++ b/lib/rbtree_test.c
@@ -247,7 +247,7 @@ static int __init rbtree_test_init(void)
247 cycles_t time1, time2, time; 247 cycles_t time1, time2, time;
248 struct rb_node *node; 248 struct rb_node *node;
249 249
250 nodes = kmalloc(nnodes * sizeof(*nodes), GFP_KERNEL); 250 nodes = kmalloc_array(nnodes, sizeof(*nodes), GFP_KERNEL);
251 if (!nodes) 251 if (!nodes)
252 return -ENOMEM; 252 return -ENOMEM;
253 253
diff --git a/lib/reed_solomon/reed_solomon.c b/lib/reed_solomon/reed_solomon.c
index dfcf54242fb9..d8bb1a1eba72 100644
--- a/lib/reed_solomon/reed_solomon.c
+++ b/lib/reed_solomon/reed_solomon.c
@@ -88,15 +88,15 @@ static struct rs_codec *codec_init(int symsize, int gfpoly, int (*gffunc)(int),
88 rs->gffunc = gffunc; 88 rs->gffunc = gffunc;
89 89
90 /* Allocate the arrays */ 90 /* Allocate the arrays */
91 rs->alpha_to = kmalloc(sizeof(uint16_t) * (rs->nn + 1), gfp); 91 rs->alpha_to = kmalloc_array(rs->nn + 1, sizeof(uint16_t), gfp);
92 if (rs->alpha_to == NULL) 92 if (rs->alpha_to == NULL)
93 goto err; 93 goto err;
94 94
95 rs->index_of = kmalloc(sizeof(uint16_t) * (rs->nn + 1), gfp); 95 rs->index_of = kmalloc_array(rs->nn + 1, sizeof(uint16_t), gfp);
96 if (rs->index_of == NULL) 96 if (rs->index_of == NULL)
97 goto err; 97 goto err;
98 98
99 rs->genpoly = kmalloc(sizeof(uint16_t) * (rs->nroots + 1), gfp); 99 rs->genpoly = kmalloc_array(rs->nroots + 1, sizeof(uint16_t), gfp);
100 if(rs->genpoly == NULL) 100 if(rs->genpoly == NULL)
101 goto err; 101 goto err;
102 102
diff --git a/lib/sbitmap.c b/lib/sbitmap.c
index 6fdc6267f4a8..fdd1b8aa8ac6 100644
--- a/lib/sbitmap.c
+++ b/lib/sbitmap.c
@@ -52,7 +52,7 @@ int sbitmap_init_node(struct sbitmap *sb, unsigned int depth, int shift,
52 return 0; 52 return 0;
53 } 53 }
54 54
55 sb->map = kzalloc_node(sb->map_nr * sizeof(*sb->map), flags, node); 55 sb->map = kcalloc_node(sb->map_nr, sizeof(*sb->map), flags, node);
56 if (!sb->map) 56 if (!sb->map)
57 return -ENOMEM; 57 return -ENOMEM;
58 58
diff --git a/lib/scatterlist.c b/lib/scatterlist.c
index 06dad7a072fd..1642fd507a96 100644
--- a/lib/scatterlist.c
+++ b/lib/scatterlist.c
@@ -170,7 +170,8 @@ static struct scatterlist *sg_kmalloc(unsigned int nents, gfp_t gfp_mask)
170 kmemleak_alloc(ptr, PAGE_SIZE, 1, gfp_mask); 170 kmemleak_alloc(ptr, PAGE_SIZE, 1, gfp_mask);
171 return ptr; 171 return ptr;
172 } else 172 } else
173 return kmalloc(nents * sizeof(struct scatterlist), gfp_mask); 173 return kmalloc_array(nents, sizeof(struct scatterlist),
174 gfp_mask);
174} 175}
175 176
176static void sg_kfree(struct scatterlist *sg, unsigned int nents) 177static void sg_kfree(struct scatterlist *sg, unsigned int nents)
diff --git a/lib/test_firmware.c b/lib/test_firmware.c
index cee000ac54d8..b984806d7d7b 100644
--- a/lib/test_firmware.c
+++ b/lib/test_firmware.c
@@ -618,8 +618,9 @@ static ssize_t trigger_batched_requests_store(struct device *dev,
618 618
619 mutex_lock(&test_fw_mutex); 619 mutex_lock(&test_fw_mutex);
620 620
621 test_fw_config->reqs = vzalloc(sizeof(struct test_batched_req) * 621 test_fw_config->reqs =
622 test_fw_config->num_requests * 2); 622 vzalloc(array3_size(sizeof(struct test_batched_req),
623 test_fw_config->num_requests, 2));
623 if (!test_fw_config->reqs) { 624 if (!test_fw_config->reqs) {
624 rc = -ENOMEM; 625 rc = -ENOMEM;
625 goto out_unlock; 626 goto out_unlock;
@@ -720,8 +721,9 @@ ssize_t trigger_batched_requests_async_store(struct device *dev,
720 721
721 mutex_lock(&test_fw_mutex); 722 mutex_lock(&test_fw_mutex);
722 723
723 test_fw_config->reqs = vzalloc(sizeof(struct test_batched_req) * 724 test_fw_config->reqs =
724 test_fw_config->num_requests * 2); 725 vzalloc(array3_size(sizeof(struct test_batched_req),
726 test_fw_config->num_requests, 2));
725 if (!test_fw_config->reqs) { 727 if (!test_fw_config->reqs) {
726 rc = -ENOMEM; 728 rc = -ENOMEM;
727 goto out; 729 goto out;
diff --git a/lib/test_kmod.c b/lib/test_kmod.c
index 0e5b7a61460b..e3ddd836491f 100644
--- a/lib/test_kmod.c
+++ b/lib/test_kmod.c
@@ -779,8 +779,9 @@ static int kmod_config_sync_info(struct kmod_test_device *test_dev)
779 struct test_config *config = &test_dev->config; 779 struct test_config *config = &test_dev->config;
780 780
781 free_test_dev_info(test_dev); 781 free_test_dev_info(test_dev);
782 test_dev->info = vzalloc(config->num_threads * 782 test_dev->info =
783 sizeof(struct kmod_test_device_info)); 783 vzalloc(array_size(sizeof(struct kmod_test_device_info),
784 config->num_threads));
784 if (!test_dev->info) 785 if (!test_dev->info)
785 return -ENOMEM; 786 return -ENOMEM;
786 787
diff --git a/lib/test_overflow.c b/lib/test_overflow.c
index aecbbb217305..2278fe05a1b0 100644
--- a/lib/test_overflow.c
+++ b/lib/test_overflow.c
@@ -367,7 +367,7 @@ static int __init test_overflow_allocation(void)
367 367
368 /* Create dummy device for devm_kmalloc()-family tests. */ 368 /* Create dummy device for devm_kmalloc()-family tests. */
369 dev = root_device_register(device_name); 369 dev = root_device_register(device_name);
370 if (!dev) { 370 if (IS_ERR(dev)) {
371 pr_warn("Cannot register test device\n"); 371 pr_warn("Cannot register test device\n");
372 return 1; 372 return 1;
373 } 373 }
diff --git a/lib/test_rhashtable.c b/lib/test_rhashtable.c
index f4000c137dbe..fb6968109113 100644
--- a/lib/test_rhashtable.c
+++ b/lib/test_rhashtable.c
@@ -285,12 +285,14 @@ static int __init test_rhltable(unsigned int entries)
285 if (entries == 0) 285 if (entries == 0)
286 entries = 1; 286 entries = 1;
287 287
288 rhl_test_objects = vzalloc(sizeof(*rhl_test_objects) * entries); 288 rhl_test_objects = vzalloc(array_size(entries,
289 sizeof(*rhl_test_objects)));
289 if (!rhl_test_objects) 290 if (!rhl_test_objects)
290 return -ENOMEM; 291 return -ENOMEM;
291 292
292 ret = -ENOMEM; 293 ret = -ENOMEM;
293 obj_in_table = vzalloc(BITS_TO_LONGS(entries) * sizeof(unsigned long)); 294 obj_in_table = vzalloc(array_size(sizeof(unsigned long),
295 BITS_TO_LONGS(entries)));
294 if (!obj_in_table) 296 if (!obj_in_table)
295 goto out_free; 297 goto out_free;
296 298
@@ -706,7 +708,8 @@ static int __init test_rht_init(void)
706 test_rht_params.max_size = max_size ? : roundup_pow_of_two(entries); 708 test_rht_params.max_size = max_size ? : roundup_pow_of_two(entries);
707 test_rht_params.nelem_hint = size; 709 test_rht_params.nelem_hint = size;
708 710
709 objs = vzalloc((test_rht_params.max_size + 1) * sizeof(struct test_obj)); 711 objs = vzalloc(array_size(sizeof(struct test_obj),
712 test_rht_params.max_size + 1));
710 if (!objs) 713 if (!objs)
711 return -ENOMEM; 714 return -ENOMEM;
712 715
@@ -753,10 +756,10 @@ static int __init test_rht_init(void)
753 pr_info("Testing concurrent rhashtable access from %d threads\n", 756 pr_info("Testing concurrent rhashtable access from %d threads\n",
754 tcount); 757 tcount);
755 sema_init(&prestart_sem, 1 - tcount); 758 sema_init(&prestart_sem, 1 - tcount);
756 tdata = vzalloc(tcount * sizeof(struct thread_data)); 759 tdata = vzalloc(array_size(tcount, sizeof(struct thread_data)));
757 if (!tdata) 760 if (!tdata)
758 return -ENOMEM; 761 return -ENOMEM;
759 objs = vzalloc(tcount * entries * sizeof(struct test_obj)); 762 objs = vzalloc(array3_size(sizeof(struct test_obj), tcount, entries));
760 if (!objs) { 763 if (!objs) {
761 vfree(tdata); 764 vfree(tdata);
762 return -ENOMEM; 765 return -ENOMEM;
diff --git a/mm/gup_benchmark.c b/mm/gup_benchmark.c
index 0f44759486e2..6a473709e9b6 100644
--- a/mm/gup_benchmark.c
+++ b/mm/gup_benchmark.c
@@ -23,7 +23,7 @@ static int __gup_benchmark_ioctl(unsigned int cmd,
23 struct page **pages; 23 struct page **pages;
24 24
25 nr_pages = gup->size / PAGE_SIZE; 25 nr_pages = gup->size / PAGE_SIZE;
26 pages = kvzalloc(sizeof(void *) * nr_pages, GFP_KERNEL); 26 pages = kvcalloc(nr_pages, sizeof(void *), GFP_KERNEL);
27 if (!pages) 27 if (!pages)
28 return -ENOMEM; 28 return -ENOMEM;
29 29
diff --git a/mm/huge_memory.c b/mm/huge_memory.c
index ba8fdc0b6e7f..1cd7c1a57a14 100644
--- a/mm/huge_memory.c
+++ b/mm/huge_memory.c
@@ -1131,8 +1131,8 @@ static int do_huge_pmd_wp_page_fallback(struct vm_fault *vmf, pmd_t orig_pmd,
1131 unsigned long mmun_start; /* For mmu_notifiers */ 1131 unsigned long mmun_start; /* For mmu_notifiers */
1132 unsigned long mmun_end; /* For mmu_notifiers */ 1132 unsigned long mmun_end; /* For mmu_notifiers */
1133 1133
1134 pages = kmalloc(sizeof(struct page *) * HPAGE_PMD_NR, 1134 pages = kmalloc_array(HPAGE_PMD_NR, sizeof(struct page *),
1135 GFP_KERNEL); 1135 GFP_KERNEL);
1136 if (unlikely(!pages)) { 1136 if (unlikely(!pages)) {
1137 ret |= VM_FAULT_OOM; 1137 ret |= VM_FAULT_OOM;
1138 goto out; 1138 goto out;
diff --git a/mm/hugetlb.c b/mm/hugetlb.c
index 696befffe6f7..3612fbb32e9d 100644
--- a/mm/hugetlb.c
+++ b/mm/hugetlb.c
@@ -2798,7 +2798,8 @@ static int __init hugetlb_init(void)
2798 num_fault_mutexes = 1; 2798 num_fault_mutexes = 1;
2799#endif 2799#endif
2800 hugetlb_fault_mutex_table = 2800 hugetlb_fault_mutex_table =
2801 kmalloc(sizeof(struct mutex) * num_fault_mutexes, GFP_KERNEL); 2801 kmalloc_array(num_fault_mutexes, sizeof(struct mutex),
2802 GFP_KERNEL);
2802 BUG_ON(!hugetlb_fault_mutex_table); 2803 BUG_ON(!hugetlb_fault_mutex_table);
2803 2804
2804 for (i = 0; i < num_fault_mutexes; i++) 2805 for (i = 0; i < num_fault_mutexes; i++)
diff --git a/mm/percpu-stats.c b/mm/percpu-stats.c
index 063ff60ecd90..b5fdd43b60c9 100644
--- a/mm/percpu-stats.c
+++ b/mm/percpu-stats.c
@@ -144,7 +144,7 @@ alloc_buffer:
144 spin_unlock_irq(&pcpu_lock); 144 spin_unlock_irq(&pcpu_lock);
145 145
146 /* there can be at most this many free and allocated fragments */ 146 /* there can be at most this many free and allocated fragments */
147 buffer = vmalloc((2 * max_nr_alloc + 1) * sizeof(int)); 147 buffer = vmalloc(array_size(sizeof(int), (2 * max_nr_alloc + 1)));
148 if (!buffer) 148 if (!buffer)
149 return -ENOMEM; 149 return -ENOMEM;
150 150
diff --git a/mm/slab.c b/mm/slab.c
index 36688f6c87eb..aa76a70e087e 100644
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -4338,7 +4338,8 @@ static int leaks_show(struct seq_file *m, void *p)
4338 if (x[0] == x[1]) { 4338 if (x[0] == x[1]) {
4339 /* Increase the buffer size */ 4339 /* Increase the buffer size */
4340 mutex_unlock(&slab_mutex); 4340 mutex_unlock(&slab_mutex);
4341 m->private = kzalloc(x[0] * 4 * sizeof(unsigned long), GFP_KERNEL); 4341 m->private = kcalloc(x[0] * 4, sizeof(unsigned long),
4342 GFP_KERNEL);
4342 if (!m->private) { 4343 if (!m->private) {
4343 /* Too bad, we are really out */ 4344 /* Too bad, we are really out */
4344 m->private = x; 4345 m->private = x;
diff --git a/mm/slub.c b/mm/slub.c
index 15505479c3ab..a3b8467c14af 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -3623,8 +3623,9 @@ static void list_slab_objects(struct kmem_cache *s, struct page *page,
3623#ifdef CONFIG_SLUB_DEBUG 3623#ifdef CONFIG_SLUB_DEBUG
3624 void *addr = page_address(page); 3624 void *addr = page_address(page);
3625 void *p; 3625 void *p;
3626 unsigned long *map = kzalloc(BITS_TO_LONGS(page->objects) * 3626 unsigned long *map = kcalloc(BITS_TO_LONGS(page->objects),
3627 sizeof(long), GFP_ATOMIC); 3627 sizeof(long),
3628 GFP_ATOMIC);
3628 if (!map) 3629 if (!map)
3629 return; 3630 return;
3630 slab_err(s, page, text, s->name); 3631 slab_err(s, page, text, s->name);
@@ -4412,8 +4413,9 @@ static long validate_slab_cache(struct kmem_cache *s)
4412{ 4413{
4413 int node; 4414 int node;
4414 unsigned long count = 0; 4415 unsigned long count = 0;
4415 unsigned long *map = kmalloc(BITS_TO_LONGS(oo_objects(s->max)) * 4416 unsigned long *map = kmalloc_array(BITS_TO_LONGS(oo_objects(s->max)),
4416 sizeof(unsigned long), GFP_KERNEL); 4417 sizeof(unsigned long),
4418 GFP_KERNEL);
4417 struct kmem_cache_node *n; 4419 struct kmem_cache_node *n;
4418 4420
4419 if (!map) 4421 if (!map)
@@ -4573,8 +4575,9 @@ static int list_locations(struct kmem_cache *s, char *buf,
4573 unsigned long i; 4575 unsigned long i;
4574 struct loc_track t = { 0, 0, NULL }; 4576 struct loc_track t = { 0, 0, NULL };
4575 int node; 4577 int node;
4576 unsigned long *map = kmalloc(BITS_TO_LONGS(oo_objects(s->max)) * 4578 unsigned long *map = kmalloc_array(BITS_TO_LONGS(oo_objects(s->max)),
4577 sizeof(unsigned long), GFP_KERNEL); 4579 sizeof(unsigned long),
4580 GFP_KERNEL);
4578 struct kmem_cache_node *n; 4581 struct kmem_cache_node *n;
4579 4582
4580 if (!map || !alloc_loc_track(&t, PAGE_SIZE / sizeof(struct location), 4583 if (!map || !alloc_loc_track(&t, PAGE_SIZE / sizeof(struct location),
@@ -4750,7 +4753,7 @@ static ssize_t show_slab_objects(struct kmem_cache *s,
4750 int x; 4753 int x;
4751 unsigned long *nodes; 4754 unsigned long *nodes;
4752 4755
4753 nodes = kzalloc(sizeof(unsigned long) * nr_node_ids, GFP_KERNEL); 4756 nodes = kcalloc(nr_node_ids, sizeof(unsigned long), GFP_KERNEL);
4754 if (!nodes) 4757 if (!nodes)
4755 return -ENOMEM; 4758 return -ENOMEM;
4756 4759
@@ -5293,7 +5296,7 @@ static int show_stat(struct kmem_cache *s, char *buf, enum stat_item si)
5293 unsigned long sum = 0; 5296 unsigned long sum = 0;
5294 int cpu; 5297 int cpu;
5295 int len; 5298 int len;
5296 int *data = kmalloc(nr_cpu_ids * sizeof(int), GFP_KERNEL); 5299 int *data = kmalloc_array(nr_cpu_ids, sizeof(int), GFP_KERNEL);
5297 5300
5298 if (!data) 5301 if (!data)
5299 return -ENOMEM; 5302 return -ENOMEM;
diff --git a/mm/swap_slots.c b/mm/swap_slots.c
index f51ac051c0c9..a791411fed71 100644
--- a/mm/swap_slots.c
+++ b/mm/swap_slots.c
@@ -122,12 +122,12 @@ static int alloc_swap_slot_cache(unsigned int cpu)
122 * as kvzalloc could trigger reclaim and get_swap_page, 122 * as kvzalloc could trigger reclaim and get_swap_page,
123 * which can lock swap_slots_cache_mutex. 123 * which can lock swap_slots_cache_mutex.
124 */ 124 */
125 slots = kvzalloc(sizeof(swp_entry_t) * SWAP_SLOTS_CACHE_SIZE, 125 slots = kvcalloc(SWAP_SLOTS_CACHE_SIZE, sizeof(swp_entry_t),
126 GFP_KERNEL); 126 GFP_KERNEL);
127 if (!slots) 127 if (!slots)
128 return -ENOMEM; 128 return -ENOMEM;
129 129
130 slots_ret = kvzalloc(sizeof(swp_entry_t) * SWAP_SLOTS_CACHE_SIZE, 130 slots_ret = kvcalloc(SWAP_SLOTS_CACHE_SIZE, sizeof(swp_entry_t),
131 GFP_KERNEL); 131 GFP_KERNEL);
132 if (!slots_ret) { 132 if (!slots_ret) {
133 kvfree(slots); 133 kvfree(slots);
diff --git a/mm/swap_state.c b/mm/swap_state.c
index ab8e59cd18ea..ecee9c6c4cc1 100644
--- a/mm/swap_state.c
+++ b/mm/swap_state.c
@@ -620,7 +620,7 @@ int init_swap_address_space(unsigned int type, unsigned long nr_pages)
620 unsigned int i, nr; 620 unsigned int i, nr;
621 621
622 nr = DIV_ROUND_UP(nr_pages, SWAP_ADDRESS_SPACE_PAGES); 622 nr = DIV_ROUND_UP(nr_pages, SWAP_ADDRESS_SPACE_PAGES);
623 spaces = kvzalloc(sizeof(struct address_space) * nr, GFP_KERNEL); 623 spaces = kvcalloc(nr, sizeof(struct address_space), GFP_KERNEL);
624 if (!spaces) 624 if (!spaces)
625 return -ENOMEM; 625 return -ENOMEM;
626 for (i = 0; i < nr; i++) { 626 for (i = 0; i < nr; i++) {
diff --git a/mm/swapfile.c b/mm/swapfile.c
index 78a015fcec3b..925cf795a652 100644
--- a/mm/swapfile.c
+++ b/mm/swapfile.c
@@ -3196,7 +3196,7 @@ SYSCALL_DEFINE2(swapon, const char __user *, specialfile, int, swap_flags)
3196 p->cluster_next = 1 + (prandom_u32() % p->highest_bit); 3196 p->cluster_next = 1 + (prandom_u32() % p->highest_bit);
3197 nr_cluster = DIV_ROUND_UP(maxpages, SWAPFILE_CLUSTER); 3197 nr_cluster = DIV_ROUND_UP(maxpages, SWAPFILE_CLUSTER);
3198 3198
3199 cluster_info = kvzalloc(nr_cluster * sizeof(*cluster_info), 3199 cluster_info = kvcalloc(nr_cluster, sizeof(*cluster_info),
3200 GFP_KERNEL); 3200 GFP_KERNEL);
3201 if (!cluster_info) { 3201 if (!cluster_info) {
3202 error = -ENOMEM; 3202 error = -ENOMEM;
@@ -3233,7 +3233,8 @@ SYSCALL_DEFINE2(swapon, const char __user *, specialfile, int, swap_flags)
3233 } 3233 }
3234 /* frontswap enabled? set up bit-per-page map for frontswap */ 3234 /* frontswap enabled? set up bit-per-page map for frontswap */
3235 if (IS_ENABLED(CONFIG_FRONTSWAP)) 3235 if (IS_ENABLED(CONFIG_FRONTSWAP))
3236 frontswap_map = kvzalloc(BITS_TO_LONGS(maxpages) * sizeof(long), 3236 frontswap_map = kvcalloc(BITS_TO_LONGS(maxpages),
3237 sizeof(long),
3237 GFP_KERNEL); 3238 GFP_KERNEL);
3238 3239
3239 if (p->bdev &&(swap_flags & SWAP_FLAG_DISCARD) && swap_discardable(p)) { 3240 if (p->bdev &&(swap_flags & SWAP_FLAG_DISCARD) && swap_discardable(p)) {
diff --git a/net/9p/protocol.c b/net/9p/protocol.c
index 16e10680518c..931ea00c4fed 100644
--- a/net/9p/protocol.c
+++ b/net/9p/protocol.c
@@ -242,8 +242,9 @@ p9pdu_vreadf(struct p9_fcall *pdu, int proto_version, const char *fmt,
242 "w", nwname); 242 "w", nwname);
243 if (!errcode) { 243 if (!errcode) {
244 *wnames = 244 *wnames =
245 kmalloc(sizeof(char *) * *nwname, 245 kmalloc_array(*nwname,
246 GFP_NOFS); 246 sizeof(char *),
247 GFP_NOFS);
247 if (!*wnames) 248 if (!*wnames)
248 errcode = -ENOMEM; 249 errcode = -ENOMEM;
249 } 250 }
@@ -285,9 +286,9 @@ p9pdu_vreadf(struct p9_fcall *pdu, int proto_version, const char *fmt,
285 p9pdu_readf(pdu, proto_version, "w", nwqid); 286 p9pdu_readf(pdu, proto_version, "w", nwqid);
286 if (!errcode) { 287 if (!errcode) {
287 *wqids = 288 *wqids =
288 kmalloc(*nwqid * 289 kmalloc_array(*nwqid,
289 sizeof(struct p9_qid), 290 sizeof(struct p9_qid),
290 GFP_NOFS); 291 GFP_NOFS);
291 if (*wqids == NULL) 292 if (*wqids == NULL)
292 errcode = -ENOMEM; 293 errcode = -ENOMEM;
293 } 294 }
diff --git a/net/9p/trans_virtio.c b/net/9p/trans_virtio.c
index 4d0372263e5d..05006cbb3361 100644
--- a/net/9p/trans_virtio.c
+++ b/net/9p/trans_virtio.c
@@ -360,7 +360,8 @@ static int p9_get_mapped_pages(struct virtio_chan *chan,
360 nr_pages = DIV_ROUND_UP((unsigned long)p + len, PAGE_SIZE) - 360 nr_pages = DIV_ROUND_UP((unsigned long)p + len, PAGE_SIZE) -
361 (unsigned long)p / PAGE_SIZE; 361 (unsigned long)p / PAGE_SIZE;
362 362
363 *pages = kmalloc(sizeof(struct page *) * nr_pages, GFP_NOFS); 363 *pages = kmalloc_array(nr_pages, sizeof(struct page *),
364 GFP_NOFS);
364 if (!*pages) 365 if (!*pages)
365 return -ENOMEM; 366 return -ENOMEM;
366 367
diff --git a/net/atm/mpc.c b/net/atm/mpc.c
index 31e0dcb970f8..75620c2f2617 100644
--- a/net/atm/mpc.c
+++ b/net/atm/mpc.c
@@ -472,7 +472,7 @@ static const uint8_t *copy_macs(struct mpoa_client *mpc,
472 if (mpc->number_of_mps_macs != 0) 472 if (mpc->number_of_mps_macs != 0)
473 kfree(mpc->mps_macs); 473 kfree(mpc->mps_macs);
474 mpc->number_of_mps_macs = 0; 474 mpc->number_of_mps_macs = 0;
475 mpc->mps_macs = kmalloc(num_macs * ETH_ALEN, GFP_KERNEL); 475 mpc->mps_macs = kmalloc_array(ETH_ALEN, num_macs, GFP_KERNEL);
476 if (mpc->mps_macs == NULL) { 476 if (mpc->mps_macs == NULL) {
477 pr_info("(%s) out of mem\n", mpc->dev->name); 477 pr_info("(%s) out of mem\n", mpc->dev->name);
478 return NULL; 478 return NULL;
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
index 1dec33790198..ee8ef1228263 100644
--- a/net/bluetooth/hci_core.c
+++ b/net/bluetooth/hci_core.c
@@ -1281,7 +1281,7 @@ int hci_inquiry(void __user *arg)
1281 /* cache_dump can't sleep. Therefore we allocate temp buffer and then 1281 /* cache_dump can't sleep. Therefore we allocate temp buffer and then
1282 * copy it to the user space. 1282 * copy it to the user space.
1283 */ 1283 */
1284 buf = kmalloc(sizeof(struct inquiry_info) * max_rsp, GFP_KERNEL); 1284 buf = kmalloc_array(max_rsp, sizeof(struct inquiry_info), GFP_KERNEL);
1285 if (!buf) { 1285 if (!buf) {
1286 err = -ENOMEM; 1286 err = -ENOMEM;
1287 goto done; 1287 goto done;
diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
index 9b7907ebfa01..d17a4736e47c 100644
--- a/net/bluetooth/l2cap_core.c
+++ b/net/bluetooth/l2cap_core.c
@@ -331,7 +331,7 @@ static int l2cap_seq_list_init(struct l2cap_seq_list *seq_list, u16 size)
331 */ 331 */
332 alloc_size = roundup_pow_of_two(size); 332 alloc_size = roundup_pow_of_two(size);
333 333
334 seq_list->list = kmalloc(sizeof(u16) * alloc_size, GFP_KERNEL); 334 seq_list->list = kmalloc_array(alloc_size, sizeof(u16), GFP_KERNEL);
335 if (!seq_list->list) 335 if (!seq_list->list)
336 return -ENOMEM; 336 return -ENOMEM;
337 337
diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c
index cb4729539b82..920665dd92db 100644
--- a/net/bridge/br_multicast.c
+++ b/net/bridge/br_multicast.c
@@ -333,7 +333,7 @@ static int br_mdb_rehash(struct net_bridge_mdb_htable __rcu **mdbp, int max,
333 mdb->max = max; 333 mdb->max = max;
334 mdb->old = old; 334 mdb->old = old;
335 335
336 mdb->mhash = kzalloc(max * sizeof(*mdb->mhash), GFP_ATOMIC); 336 mdb->mhash = kcalloc(max, sizeof(*mdb->mhash), GFP_ATOMIC);
337 if (!mdb->mhash) { 337 if (!mdb->mhash) {
338 kfree(mdb); 338 kfree(mdb);
339 return -ENOMEM; 339 return -ENOMEM;
diff --git a/net/bridge/netfilter/ebtables.c b/net/bridge/netfilter/ebtables.c
index 28f68a2ec911..684b66bfa199 100644
--- a/net/bridge/netfilter/ebtables.c
+++ b/net/bridge/netfilter/ebtables.c
@@ -903,12 +903,13 @@ static int translate_table(struct net *net, const char *name,
903 * if an error occurs 903 * if an error occurs
904 */ 904 */
905 newinfo->chainstack = 905 newinfo->chainstack =
906 vmalloc(nr_cpu_ids * sizeof(*(newinfo->chainstack))); 906 vmalloc(array_size(nr_cpu_ids,
907 sizeof(*(newinfo->chainstack))));
907 if (!newinfo->chainstack) 908 if (!newinfo->chainstack)
908 return -ENOMEM; 909 return -ENOMEM;
909 for_each_possible_cpu(i) { 910 for_each_possible_cpu(i) {
910 newinfo->chainstack[i] = 911 newinfo->chainstack[i] =
911 vmalloc(udc_cnt * sizeof(*(newinfo->chainstack[0]))); 912 vmalloc(array_size(udc_cnt, sizeof(*(newinfo->chainstack[0]))));
912 if (!newinfo->chainstack[i]) { 913 if (!newinfo->chainstack[i]) {
913 while (i) 914 while (i)
914 vfree(newinfo->chainstack[--i]); 915 vfree(newinfo->chainstack[--i]);
@@ -918,7 +919,7 @@ static int translate_table(struct net *net, const char *name,
918 } 919 }
919 } 920 }
920 921
921 cl_s = vmalloc(udc_cnt * sizeof(*cl_s)); 922 cl_s = vmalloc(array_size(udc_cnt, sizeof(*cl_s)));
922 if (!cl_s) 923 if (!cl_s)
923 return -ENOMEM; 924 return -ENOMEM;
924 i = 0; /* the i'th udc */ 925 i = 0; /* the i'th udc */
@@ -1293,7 +1294,7 @@ static int do_update_counters(struct net *net, const char *name,
1293 if (num_counters == 0) 1294 if (num_counters == 0)
1294 return -EINVAL; 1295 return -EINVAL;
1295 1296
1296 tmp = vmalloc(num_counters * sizeof(*tmp)); 1297 tmp = vmalloc(array_size(num_counters, sizeof(*tmp)));
1297 if (!tmp) 1298 if (!tmp)
1298 return -ENOMEM; 1299 return -ENOMEM;
1299 1300
@@ -1434,7 +1435,7 @@ static int copy_counters_to_user(struct ebt_table *t,
1434 return -EINVAL; 1435 return -EINVAL;
1435 } 1436 }
1436 1437
1437 counterstmp = vmalloc(nentries * sizeof(*counterstmp)); 1438 counterstmp = vmalloc(array_size(nentries, sizeof(*counterstmp)));
1438 if (!counterstmp) 1439 if (!counterstmp)
1439 return -ENOMEM; 1440 return -ENOMEM;
1440 1441
diff --git a/net/can/bcm.c b/net/can/bcm.c
index 97fedff3f0c4..9393f25df08d 100644
--- a/net/can/bcm.c
+++ b/net/can/bcm.c
@@ -923,8 +923,9 @@ static int bcm_tx_setup(struct bcm_msg_head *msg_head, struct msghdr *msg,
923 923
924 /* create array for CAN frames and copy the data */ 924 /* create array for CAN frames and copy the data */
925 if (msg_head->nframes > 1) { 925 if (msg_head->nframes > 1) {
926 op->frames = kmalloc(msg_head->nframes * op->cfsiz, 926 op->frames = kmalloc_array(msg_head->nframes,
927 GFP_KERNEL); 927 op->cfsiz,
928 GFP_KERNEL);
928 if (!op->frames) { 929 if (!op->frames) {
929 kfree(op); 930 kfree(op);
930 return -ENOMEM; 931 return -ENOMEM;
@@ -1095,15 +1096,17 @@ static int bcm_rx_setup(struct bcm_msg_head *msg_head, struct msghdr *msg,
1095 1096
1096 if (msg_head->nframes > 1) { 1097 if (msg_head->nframes > 1) {
1097 /* create array for CAN frames and copy the data */ 1098 /* create array for CAN frames and copy the data */
1098 op->frames = kmalloc(msg_head->nframes * op->cfsiz, 1099 op->frames = kmalloc_array(msg_head->nframes,
1099 GFP_KERNEL); 1100 op->cfsiz,
1101 GFP_KERNEL);
1100 if (!op->frames) { 1102 if (!op->frames) {
1101 kfree(op); 1103 kfree(op);
1102 return -ENOMEM; 1104 return -ENOMEM;
1103 } 1105 }
1104 1106
1105 /* create and init array for received CAN frames */ 1107 /* create and init array for received CAN frames */
1106 op->last_frames = kzalloc(msg_head->nframes * op->cfsiz, 1108 op->last_frames = kcalloc(msg_head->nframes,
1109 op->cfsiz,
1107 GFP_KERNEL); 1110 GFP_KERNEL);
1108 if (!op->last_frames) { 1111 if (!op->last_frames) {
1109 kfree(op->frames); 1112 kfree(op->frames);
diff --git a/net/ceph/osdmap.c b/net/ceph/osdmap.c
index 9645ffd6acfb..e22820e24f50 100644
--- a/net/ceph/osdmap.c
+++ b/net/ceph/osdmap.c
@@ -1299,8 +1299,9 @@ static int set_primary_affinity(struct ceph_osdmap *map, int osd, u32 aff)
1299 if (!map->osd_primary_affinity) { 1299 if (!map->osd_primary_affinity) {
1300 int i; 1300 int i;
1301 1301
1302 map->osd_primary_affinity = kmalloc(map->max_osd*sizeof(u32), 1302 map->osd_primary_affinity = kmalloc_array(map->max_osd,
1303 GFP_NOFS); 1303 sizeof(u32),
1304 GFP_NOFS);
1304 if (!map->osd_primary_affinity) 1305 if (!map->osd_primary_affinity)
1305 return -ENOMEM; 1306 return -ENOMEM;
1306 1307
diff --git a/net/ceph/pagevec.c b/net/ceph/pagevec.c
index a3d0adc828e6..e560d3975f41 100644
--- a/net/ceph/pagevec.c
+++ b/net/ceph/pagevec.c
@@ -20,7 +20,7 @@ struct page **ceph_get_direct_page_vector(const void __user *data,
20 int got = 0; 20 int got = 0;
21 int rc = 0; 21 int rc = 0;
22 22
23 pages = kmalloc(sizeof(*pages) * num_pages, GFP_NOFS); 23 pages = kmalloc_array(num_pages, sizeof(*pages), GFP_NOFS);
24 if (!pages) 24 if (!pages)
25 return ERR_PTR(-ENOMEM); 25 return ERR_PTR(-ENOMEM);
26 26
@@ -74,7 +74,7 @@ struct page **ceph_alloc_page_vector(int num_pages, gfp_t flags)
74 struct page **pages; 74 struct page **pages;
75 int i; 75 int i;
76 76
77 pages = kmalloc(sizeof(*pages) * num_pages, flags); 77 pages = kmalloc_array(num_pages, sizeof(*pages), flags);
78 if (!pages) 78 if (!pages)
79 return ERR_PTR(-ENOMEM); 79 return ERR_PTR(-ENOMEM);
80 for (i = 0; i < num_pages; i++) { 80 for (i = 0; i < num_pages; i++) {
diff --git a/net/core/dev.c b/net/core/dev.c
index 6e18242a1cae..57b7bab5f70b 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -8823,7 +8823,7 @@ static struct hlist_head * __net_init netdev_create_hash(void)
8823 int i; 8823 int i;
8824 struct hlist_head *hash; 8824 struct hlist_head *hash;
8825 8825
8826 hash = kmalloc(sizeof(*hash) * NETDEV_HASHENTRIES, GFP_KERNEL); 8826 hash = kmalloc_array(NETDEV_HASHENTRIES, sizeof(*hash), GFP_KERNEL);
8827 if (hash != NULL) 8827 if (hash != NULL)
8828 for (i = 0; i < NETDEV_HASHENTRIES; i++) 8828 for (i = 0; i < NETDEV_HASHENTRIES; i++)
8829 INIT_HLIST_HEAD(&hash[i]); 8829 INIT_HLIST_HEAD(&hash[i]);
diff --git a/net/core/ethtool.c b/net/core/ethtool.c
index c15075dc7572..e677a20180cf 100644
--- a/net/core/ethtool.c
+++ b/net/core/ethtool.c
@@ -911,7 +911,7 @@ static noinline_for_stack int ethtool_get_sset_info(struct net_device *dev,
911 memset(&info, 0, sizeof(info)); 911 memset(&info, 0, sizeof(info));
912 info.cmd = ETHTOOL_GSSET_INFO; 912 info.cmd = ETHTOOL_GSSET_INFO;
913 913
914 info_buf = kzalloc(n_bits * sizeof(u32), GFP_USER); 914 info_buf = kcalloc(n_bits, sizeof(u32), GFP_USER);
915 if (!info_buf) 915 if (!info_buf)
916 return -ENOMEM; 916 return -ENOMEM;
917 917
@@ -1017,7 +1017,7 @@ static noinline_for_stack int ethtool_get_rxnfc(struct net_device *dev,
1017 if (info.cmd == ETHTOOL_GRXCLSRLALL) { 1017 if (info.cmd == ETHTOOL_GRXCLSRLALL) {
1018 if (info.rule_cnt > 0) { 1018 if (info.rule_cnt > 0) {
1019 if (info.rule_cnt <= KMALLOC_MAX_SIZE / sizeof(u32)) 1019 if (info.rule_cnt <= KMALLOC_MAX_SIZE / sizeof(u32))
1020 rule_buf = kzalloc(info.rule_cnt * sizeof(u32), 1020 rule_buf = kcalloc(info.rule_cnt, sizeof(u32),
1021 GFP_USER); 1021 GFP_USER);
1022 if (!rule_buf) 1022 if (!rule_buf)
1023 return -ENOMEM; 1023 return -ENOMEM;
@@ -1816,7 +1816,7 @@ static int ethtool_self_test(struct net_device *dev, char __user *useraddr)
1816 return -EFAULT; 1816 return -EFAULT;
1817 1817
1818 test.len = test_len; 1818 test.len = test_len;
1819 data = kmalloc(test_len * sizeof(u64), GFP_USER); 1819 data = kmalloc_array(test_len, sizeof(u64), GFP_USER);
1820 if (!data) 1820 if (!data)
1821 return -ENOMEM; 1821 return -ENOMEM;
1822 1822
@@ -1852,7 +1852,7 @@ static int ethtool_get_strings(struct net_device *dev, void __user *useraddr)
1852 WARN_ON_ONCE(!ret); 1852 WARN_ON_ONCE(!ret);
1853 1853
1854 gstrings.len = ret; 1854 gstrings.len = ret;
1855 data = vzalloc(gstrings.len * ETH_GSTRING_LEN); 1855 data = vzalloc(array_size(gstrings.len, ETH_GSTRING_LEN));
1856 if (gstrings.len && !data) 1856 if (gstrings.len && !data)
1857 return -ENOMEM; 1857 return -ENOMEM;
1858 1858
@@ -1952,7 +1952,7 @@ static int ethtool_get_stats(struct net_device *dev, void __user *useraddr)
1952 return -EFAULT; 1952 return -EFAULT;
1953 1953
1954 stats.n_stats = n_stats; 1954 stats.n_stats = n_stats;
1955 data = vzalloc(n_stats * sizeof(u64)); 1955 data = vzalloc(array_size(n_stats, sizeof(u64)));
1956 if (n_stats && !data) 1956 if (n_stats && !data)
1957 return -ENOMEM; 1957 return -ENOMEM;
1958 1958
@@ -1996,7 +1996,7 @@ static int ethtool_get_phy_stats(struct net_device *dev, void __user *useraddr)
1996 return -EFAULT; 1996 return -EFAULT;
1997 1997
1998 stats.n_stats = n_stats; 1998 stats.n_stats = n_stats;
1999 data = vzalloc(n_stats * sizeof(u64)); 1999 data = vzalloc(array_size(n_stats, sizeof(u64)));
2000 if (n_stats && !data) 2000 if (n_stats && !data)
2001 return -ENOMEM; 2001 return -ENOMEM;
2002 2002
diff --git a/net/core/pktgen.c b/net/core/pktgen.c
index 7e4ede34cc52..49368e21d228 100644
--- a/net/core/pktgen.c
+++ b/net/core/pktgen.c
@@ -3603,7 +3603,8 @@ static int pktgen_add_device(struct pktgen_thread *t, const char *ifname)
3603 return -ENOMEM; 3603 return -ENOMEM;
3604 3604
3605 strcpy(pkt_dev->odevname, ifname); 3605 strcpy(pkt_dev->odevname, ifname);
3606 pkt_dev->flows = vzalloc_node(MAX_CFLOWS * sizeof(struct flow_state), 3606 pkt_dev->flows = vzalloc_node(array_size(MAX_CFLOWS,
3607 sizeof(struct flow_state)),
3607 node); 3608 node);
3608 if (pkt_dev->flows == NULL) { 3609 if (pkt_dev->flows == NULL) {
3609 kfree(pkt_dev); 3610 kfree(pkt_dev);
diff --git a/net/dcb/dcbnl.c b/net/dcb/dcbnl.c
index d2f4e0c1faaf..2589a6b78aa1 100644
--- a/net/dcb/dcbnl.c
+++ b/net/dcb/dcbnl.c
@@ -984,7 +984,8 @@ static int dcbnl_build_peer_app(struct net_device *netdev, struct sk_buff* skb,
984 */ 984 */
985 err = ops->peer_getappinfo(netdev, &info, &app_count); 985 err = ops->peer_getappinfo(netdev, &info, &app_count);
986 if (!err && app_count) { 986 if (!err && app_count) {
987 table = kmalloc(sizeof(struct dcb_app) * app_count, GFP_KERNEL); 987 table = kmalloc_array(app_count, sizeof(struct dcb_app),
988 GFP_KERNEL);
988 if (!table) 989 if (!table)
989 return -ENOMEM; 990 return -ENOMEM;
990 991
diff --git a/net/dccp/ccids/ccid2.c b/net/dccp/ccids/ccid2.c
index 385f153fe031..2b75df469220 100644
--- a/net/dccp/ccids/ccid2.c
+++ b/net/dccp/ccids/ccid2.c
@@ -46,7 +46,8 @@ static int ccid2_hc_tx_alloc_seq(struct ccid2_hc_tx_sock *hc)
46 return -ENOMEM; 46 return -ENOMEM;
47 47
48 /* allocate buffer and initialize linked list */ 48 /* allocate buffer and initialize linked list */
49 seqp = kmalloc(CCID2_SEQBUF_LEN * sizeof(struct ccid2_seq), gfp_any()); 49 seqp = kmalloc_array(CCID2_SEQBUF_LEN, sizeof(struct ccid2_seq),
50 gfp_any());
50 if (seqp == NULL) 51 if (seqp == NULL)
51 return -ENOMEM; 52 return -ENOMEM;
52 53
diff --git a/net/ieee802154/nl-phy.c b/net/ieee802154/nl-phy.c
index dc2960be51e0..b231e40f006a 100644
--- a/net/ieee802154/nl-phy.c
+++ b/net/ieee802154/nl-phy.c
@@ -38,7 +38,7 @@ static int ieee802154_nl_fill_phy(struct sk_buff *msg, u32 portid,
38{ 38{
39 void *hdr; 39 void *hdr;
40 int i, pages = 0; 40 int i, pages = 0;
41 uint32_t *buf = kzalloc(32 * sizeof(uint32_t), GFP_KERNEL); 41 uint32_t *buf = kcalloc(32, sizeof(uint32_t), GFP_KERNEL);
42 42
43 pr_debug("%s\n", __func__); 43 pr_debug("%s\n", __func__);
44 44
diff --git a/net/ipv4/fib_frontend.c b/net/ipv4/fib_frontend.c
index 63aa39b3af03..b21833651394 100644
--- a/net/ipv4/fib_frontend.c
+++ b/net/ipv4/fib_frontend.c
@@ -567,7 +567,7 @@ static int rtentry_to_fib_config(struct net *net, int cmd, struct rtentry *rt,
567 struct nlattr *mx; 567 struct nlattr *mx;
568 int len = 0; 568 int len = 0;
569 569
570 mx = kzalloc(3 * nla_total_size(4), GFP_KERNEL); 570 mx = kcalloc(3, nla_total_size(4), GFP_KERNEL);
571 if (!mx) 571 if (!mx)
572 return -ENOMEM; 572 return -ENOMEM;
573 573
diff --git a/net/ipv4/route.c b/net/ipv4/route.c
index bf4e4adc2d00..1df6e97106d7 100644
--- a/net/ipv4/route.c
+++ b/net/ipv4/route.c
@@ -649,7 +649,7 @@ static void update_or_create_fnhe(struct fib_nh *nh, __be32 daddr, __be32 gw,
649 649
650 hash = rcu_dereference(nh->nh_exceptions); 650 hash = rcu_dereference(nh->nh_exceptions);
651 if (!hash) { 651 if (!hash) {
652 hash = kzalloc(FNHE_HASH_SIZE * sizeof(*hash), GFP_ATOMIC); 652 hash = kcalloc(FNHE_HASH_SIZE, sizeof(*hash), GFP_ATOMIC);
653 if (!hash) 653 if (!hash)
654 goto out_unlock; 654 goto out_unlock;
655 rcu_assign_pointer(nh->nh_exceptions, hash); 655 rcu_assign_pointer(nh->nh_exceptions, hash);
@@ -3146,7 +3146,8 @@ int __init ip_rt_init(void)
3146{ 3146{
3147 int cpu; 3147 int cpu;
3148 3148
3149 ip_idents = kmalloc(IP_IDENTS_SZ * sizeof(*ip_idents), GFP_KERNEL); 3149 ip_idents = kmalloc_array(IP_IDENTS_SZ, sizeof(*ip_idents),
3150 GFP_KERNEL);
3150 if (!ip_idents) 3151 if (!ip_idents)
3151 panic("IP: failed to allocate ip_idents\n"); 3152 panic("IP: failed to allocate ip_idents\n");
3152 3153
diff --git a/net/ipv6/icmp.c b/net/ipv6/icmp.c
index d8c4b6374377..be491bf6ab6e 100644
--- a/net/ipv6/icmp.c
+++ b/net/ipv6/icmp.c
@@ -956,7 +956,7 @@ static int __net_init icmpv6_sk_init(struct net *net)
956 int err, i, j; 956 int err, i, j;
957 957
958 net->ipv6.icmp_sk = 958 net->ipv6.icmp_sk =
959 kzalloc(nr_cpu_ids * sizeof(struct sock *), GFP_KERNEL); 959 kcalloc(nr_cpu_ids, sizeof(struct sock *), GFP_KERNEL);
960 if (!net->ipv6.icmp_sk) 960 if (!net->ipv6.icmp_sk)
961 return -ENOMEM; 961 return -ENOMEM;
962 962
diff --git a/net/ipv6/ila/ila_xlat.c b/net/ipv6/ila/ila_xlat.c
index 44c39c5f0638..10ae13560b40 100644
--- a/net/ipv6/ila/ila_xlat.c
+++ b/net/ipv6/ila/ila_xlat.c
@@ -42,7 +42,8 @@ static int alloc_ila_locks(struct ila_net *ilan)
42 size = roundup_pow_of_two(nr_pcpus * LOCKS_PER_CPU); 42 size = roundup_pow_of_two(nr_pcpus * LOCKS_PER_CPU);
43 43
44 if (sizeof(spinlock_t) != 0) { 44 if (sizeof(spinlock_t) != 0) {
45 ilan->locks = kvmalloc(size * sizeof(spinlock_t), GFP_KERNEL); 45 ilan->locks = kvmalloc_array(size, sizeof(spinlock_t),
46 GFP_KERNEL);
46 if (!ilan->locks) 47 if (!ilan->locks)
47 return -ENOMEM; 48 return -ENOMEM;
48 for (i = 0; i < size; i++) 49 for (i = 0; i < size; i++)
diff --git a/net/mac80211/chan.c b/net/mac80211/chan.c
index 89178b46b32f..d9558ffb8acf 100644
--- a/net/mac80211/chan.c
+++ b/net/mac80211/chan.c
@@ -1186,7 +1186,7 @@ static int ieee80211_chsw_switch_vifs(struct ieee80211_local *local,
1186 lockdep_assert_held(&local->mtx); 1186 lockdep_assert_held(&local->mtx);
1187 lockdep_assert_held(&local->chanctx_mtx); 1187 lockdep_assert_held(&local->chanctx_mtx);
1188 1188
1189 vif_chsw = kzalloc(sizeof(vif_chsw[0]) * n_vifs, GFP_KERNEL); 1189 vif_chsw = kcalloc(n_vifs, sizeof(vif_chsw[0]), GFP_KERNEL);
1190 if (!vif_chsw) 1190 if (!vif_chsw)
1191 return -ENOMEM; 1191 return -ENOMEM;
1192 1192
diff --git a/net/mac80211/main.c b/net/mac80211/main.c
index 4d2e797e3f16..fb1b1f9e7e5e 100644
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -772,7 +772,7 @@ static int ieee80211_init_cipher_suites(struct ieee80211_local *local)
772 if (have_mfp) 772 if (have_mfp)
773 n_suites += 4; 773 n_suites += 4;
774 774
775 suites = kmalloc(sizeof(u32) * n_suites, GFP_KERNEL); 775 suites = kmalloc_array(n_suites, sizeof(u32), GFP_KERNEL);
776 if (!suites) 776 if (!suites)
777 return -ENOMEM; 777 return -ENOMEM;
778 778
diff --git a/net/mac80211/rc80211_minstrel.c b/net/mac80211/rc80211_minstrel.c
index 8221bc5582ab..76048b53c5b2 100644
--- a/net/mac80211/rc80211_minstrel.c
+++ b/net/mac80211/rc80211_minstrel.c
@@ -592,11 +592,11 @@ minstrel_alloc_sta(void *priv, struct ieee80211_sta *sta, gfp_t gfp)
592 max_rates = sband->n_bitrates; 592 max_rates = sband->n_bitrates;
593 } 593 }
594 594
595 mi->r = kzalloc(sizeof(struct minstrel_rate) * max_rates, gfp); 595 mi->r = kcalloc(max_rates, sizeof(struct minstrel_rate), gfp);
596 if (!mi->r) 596 if (!mi->r)
597 goto error; 597 goto error;
598 598
599 mi->sample_table = kmalloc(SAMPLE_COLUMNS * max_rates, gfp); 599 mi->sample_table = kmalloc_array(max_rates, SAMPLE_COLUMNS, gfp);
600 if (!mi->sample_table) 600 if (!mi->sample_table)
601 goto error1; 601 goto error1;
602 602
diff --git a/net/mac80211/rc80211_minstrel_ht.c b/net/mac80211/rc80211_minstrel_ht.c
index fb586b6e5d49..67ebdeaffbbc 100644
--- a/net/mac80211/rc80211_minstrel_ht.c
+++ b/net/mac80211/rc80211_minstrel_ht.c
@@ -1313,11 +1313,11 @@ minstrel_ht_alloc_sta(void *priv, struct ieee80211_sta *sta, gfp_t gfp)
1313 if (!msp) 1313 if (!msp)
1314 return NULL; 1314 return NULL;
1315 1315
1316 msp->ratelist = kzalloc(sizeof(struct minstrel_rate) * max_rates, gfp); 1316 msp->ratelist = kcalloc(max_rates, sizeof(struct minstrel_rate), gfp);
1317 if (!msp->ratelist) 1317 if (!msp->ratelist)
1318 goto error; 1318 goto error;
1319 1319
1320 msp->sample_table = kmalloc(SAMPLE_COLUMNS * max_rates, gfp); 1320 msp->sample_table = kmalloc_array(max_rates, SAMPLE_COLUMNS, gfp);
1321 if (!msp->sample_table) 1321 if (!msp->sample_table)
1322 goto error1; 1322 goto error1;
1323 1323
diff --git a/net/mac80211/scan.c b/net/mac80211/scan.c
index a3b1bcc2b461..2e917a6d239d 100644
--- a/net/mac80211/scan.c
+++ b/net/mac80211/scan.c
@@ -1157,7 +1157,7 @@ int __ieee80211_request_sched_scan_start(struct ieee80211_sub_if_data *sdata,
1157 } 1157 }
1158 } 1158 }
1159 1159
1160 ie = kzalloc(num_bands * iebufsz, GFP_KERNEL); 1160 ie = kcalloc(iebufsz, num_bands, GFP_KERNEL);
1161 if (!ie) { 1161 if (!ie) {
1162 ret = -ENOMEM; 1162 ret = -ENOMEM;
1163 goto out; 1163 goto out;
diff --git a/net/mac80211/util.c b/net/mac80211/util.c
index 2d82c88efd0b..5e2e511c4a6f 100644
--- a/net/mac80211/util.c
+++ b/net/mac80211/util.c
@@ -1803,8 +1803,9 @@ static int ieee80211_reconfig_nan(struct ieee80211_sub_if_data *sdata)
1803 if (WARN_ON(res)) 1803 if (WARN_ON(res))
1804 return res; 1804 return res;
1805 1805
1806 funcs = kzalloc((sdata->local->hw.max_nan_de_entries + 1) * 1806 funcs = kcalloc(sdata->local->hw.max_nan_de_entries + 1,
1807 sizeof(*funcs), GFP_KERNEL); 1807 sizeof(*funcs),
1808 GFP_KERNEL);
1808 if (!funcs) 1809 if (!funcs)
1809 return -ENOMEM; 1810 return -ENOMEM;
1810 1811
diff --git a/net/netfilter/ipvs/ip_vs_conn.c b/net/netfilter/ipvs/ip_vs_conn.c
index 61c3a389da89..99e0aa350dc5 100644
--- a/net/netfilter/ipvs/ip_vs_conn.c
+++ b/net/netfilter/ipvs/ip_vs_conn.c
@@ -1380,7 +1380,8 @@ int __init ip_vs_conn_init(void)
1380 /* 1380 /*
1381 * Allocate the connection hash table and initialize its list heads 1381 * Allocate the connection hash table and initialize its list heads
1382 */ 1382 */
1383 ip_vs_conn_tab = vmalloc(ip_vs_conn_tab_size * sizeof(*ip_vs_conn_tab)); 1383 ip_vs_conn_tab = vmalloc(array_size(ip_vs_conn_tab_size,
1384 sizeof(*ip_vs_conn_tab)));
1384 if (!ip_vs_conn_tab) 1385 if (!ip_vs_conn_tab)
1385 return -ENOMEM; 1386 return -ENOMEM;
1386 1387
diff --git a/net/netfilter/nf_conntrack_proto.c b/net/netfilter/nf_conntrack_proto.c
index afdeca53e88b..d88841fbc560 100644
--- a/net/netfilter/nf_conntrack_proto.c
+++ b/net/netfilter/nf_conntrack_proto.c
@@ -402,7 +402,8 @@ int nf_ct_l4proto_register_one(const struct nf_conntrack_l4proto *l4proto)
402 struct nf_conntrack_l4proto __rcu **proto_array; 402 struct nf_conntrack_l4proto __rcu **proto_array;
403 int i; 403 int i;
404 404
405 proto_array = kmalloc(MAX_NF_CT_PROTO * 405 proto_array =
406 kmalloc_array(MAX_NF_CT_PROTO,
406 sizeof(struct nf_conntrack_l4proto *), 407 sizeof(struct nf_conntrack_l4proto *),
407 GFP_KERNEL); 408 GFP_KERNEL);
408 if (proto_array == NULL) { 409 if (proto_array == NULL) {
diff --git a/net/netfilter/nf_nat_core.c b/net/netfilter/nf_nat_core.c
index b7df32a56e7e..46f9df99d276 100644
--- a/net/netfilter/nf_nat_core.c
+++ b/net/netfilter/nf_nat_core.c
@@ -691,8 +691,9 @@ int nf_nat_l4proto_register(u8 l3proto, const struct nf_nat_l4proto *l4proto)
691 691
692 mutex_lock(&nf_nat_proto_mutex); 692 mutex_lock(&nf_nat_proto_mutex);
693 if (nf_nat_l4protos[l3proto] == NULL) { 693 if (nf_nat_l4protos[l3proto] == NULL) {
694 l4protos = kmalloc(IPPROTO_MAX * sizeof(struct nf_nat_l4proto *), 694 l4protos = kmalloc_array(IPPROTO_MAX,
695 GFP_KERNEL); 695 sizeof(struct nf_nat_l4proto *),
696 GFP_KERNEL);
696 if (l4protos == NULL) { 697 if (l4protos == NULL) {
697 ret = -ENOMEM; 698 ret = -ENOMEM;
698 goto out; 699 goto out;
diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c
index ca4c4d994ddb..f0411fbffe77 100644
--- a/net/netfilter/nf_tables_api.c
+++ b/net/netfilter/nf_tables_api.c
@@ -5303,7 +5303,7 @@ static int nf_tables_flowtable_parse_hook(const struct nft_ctx *ctx,
5303 if (err < 0) 5303 if (err < 0)
5304 return err; 5304 return err;
5305 5305
5306 ops = kzalloc(sizeof(struct nf_hook_ops) * n, GFP_KERNEL); 5306 ops = kcalloc(n, sizeof(struct nf_hook_ops), GFP_KERNEL);
5307 if (!ops) 5307 if (!ops)
5308 return -ENOMEM; 5308 return -ENOMEM;
5309 5309
@@ -7164,8 +7164,8 @@ static int __init nf_tables_module_init(void)
7164 7164
7165 nft_chain_filter_init(); 7165 nft_chain_filter_init();
7166 7166
7167 info = kmalloc(sizeof(struct nft_expr_info) * NFT_RULE_MAXEXPRS, 7167 info = kmalloc_array(NFT_RULE_MAXEXPRS, sizeof(struct nft_expr_info),
7168 GFP_KERNEL); 7168 GFP_KERNEL);
7169 if (info == NULL) { 7169 if (info == NULL) {
7170 err = -ENOMEM; 7170 err = -ENOMEM;
7171 goto err1; 7171 goto err1;
diff --git a/net/netfilter/nfnetlink_cthelper.c b/net/netfilter/nfnetlink_cthelper.c
index cb5b5f207777..e5d27b2e4eba 100644
--- a/net/netfilter/nfnetlink_cthelper.c
+++ b/net/netfilter/nfnetlink_cthelper.c
@@ -190,8 +190,9 @@ nfnl_cthelper_parse_expect_policy(struct nf_conntrack_helper *helper,
190 if (class_max > NF_CT_MAX_EXPECT_CLASSES) 190 if (class_max > NF_CT_MAX_EXPECT_CLASSES)
191 return -EOVERFLOW; 191 return -EOVERFLOW;
192 192
193 expect_policy = kzalloc(sizeof(struct nf_conntrack_expect_policy) * 193 expect_policy = kcalloc(class_max,
194 class_max, GFP_KERNEL); 194 sizeof(struct nf_conntrack_expect_policy),
195 GFP_KERNEL);
195 if (expect_policy == NULL) 196 if (expect_policy == NULL)
196 return -ENOMEM; 197 return -ENOMEM;
197 198
diff --git a/net/netfilter/x_tables.c b/net/netfilter/x_tables.c
index df9ab71b0ed9..d0d8397c9588 100644
--- a/net/netfilter/x_tables.c
+++ b/net/netfilter/x_tables.c
@@ -1904,7 +1904,7 @@ static int __init xt_init(void)
1904 seqcount_init(&per_cpu(xt_recseq, i)); 1904 seqcount_init(&per_cpu(xt_recseq, i));
1905 } 1905 }
1906 1906
1907 xt = kmalloc(sizeof(struct xt_af) * NFPROTO_NUMPROTO, GFP_KERNEL); 1907 xt = kmalloc_array(NFPROTO_NUMPROTO, sizeof(struct xt_af), GFP_KERNEL);
1908 if (!xt) 1908 if (!xt)
1909 return -ENOMEM; 1909 return -ENOMEM;
1910 1910
diff --git a/net/netlink/genetlink.c b/net/netlink/genetlink.c
index b9ce82c9440f..25eeb6d2a75a 100644
--- a/net/netlink/genetlink.c
+++ b/net/netlink/genetlink.c
@@ -352,8 +352,9 @@ int genl_register_family(struct genl_family *family)
352 } 352 }
353 353
354 if (family->maxattr && !family->parallel_ops) { 354 if (family->maxattr && !family->parallel_ops) {
355 family->attrbuf = kmalloc((family->maxattr+1) * 355 family->attrbuf = kmalloc_array(family->maxattr + 1,
356 sizeof(struct nlattr *), GFP_KERNEL); 356 sizeof(struct nlattr *),
357 GFP_KERNEL);
357 if (family->attrbuf == NULL) { 358 if (family->attrbuf == NULL) {
358 err = -ENOMEM; 359 err = -ENOMEM;
359 goto errout_locked; 360 goto errout_locked;
@@ -566,8 +567,9 @@ static int genl_family_rcv_msg(const struct genl_family *family,
566 return -EOPNOTSUPP; 567 return -EOPNOTSUPP;
567 568
568 if (family->maxattr && family->parallel_ops) { 569 if (family->maxattr && family->parallel_ops) {
569 attrbuf = kmalloc((family->maxattr+1) * 570 attrbuf = kmalloc_array(family->maxattr + 1,
570 sizeof(struct nlattr *), GFP_KERNEL); 571 sizeof(struct nlattr *),
572 GFP_KERNEL);
571 if (attrbuf == NULL) 573 if (attrbuf == NULL)
572 return -ENOMEM; 574 return -ENOMEM;
573 } else 575 } else
diff --git a/net/netrom/af_netrom.c b/net/netrom/af_netrom.c
index b97eb766a1d5..93fbcafbf388 100644
--- a/net/netrom/af_netrom.c
+++ b/net/netrom/af_netrom.c
@@ -1395,7 +1395,7 @@ static int __init nr_proto_init(void)
1395 return -1; 1395 return -1;
1396 } 1396 }
1397 1397
1398 dev_nr = kzalloc(nr_ndevs * sizeof(struct net_device *), GFP_KERNEL); 1398 dev_nr = kcalloc(nr_ndevs, sizeof(struct net_device *), GFP_KERNEL);
1399 if (dev_nr == NULL) { 1399 if (dev_nr == NULL) {
1400 printk(KERN_ERR "NET/ROM: nr_proto_init - unable to allocate device array\n"); 1400 printk(KERN_ERR "NET/ROM: nr_proto_init - unable to allocate device array\n");
1401 return -1; 1401 return -1;
diff --git a/net/openvswitch/datapath.c b/net/openvswitch/datapath.c
index a61818e94396..0f5ce77460d4 100644
--- a/net/openvswitch/datapath.c
+++ b/net/openvswitch/datapath.c
@@ -1578,8 +1578,9 @@ static int ovs_dp_cmd_new(struct sk_buff *skb, struct genl_info *info)
1578 goto err_destroy_table; 1578 goto err_destroy_table;
1579 } 1579 }
1580 1580
1581 dp->ports = kmalloc(DP_VPORT_HASH_BUCKETS * sizeof(struct hlist_head), 1581 dp->ports = kmalloc_array(DP_VPORT_HASH_BUCKETS,
1582 GFP_KERNEL); 1582 sizeof(struct hlist_head),
1583 GFP_KERNEL);
1583 if (!dp->ports) { 1584 if (!dp->ports) {
1584 err = -ENOMEM; 1585 err = -ENOMEM;
1585 goto err_destroy_percpu; 1586 goto err_destroy_percpu;
diff --git a/net/openvswitch/vport.c b/net/openvswitch/vport.c
index f81c1d0ddff4..19f6765566e7 100644
--- a/net/openvswitch/vport.c
+++ b/net/openvswitch/vport.c
@@ -47,7 +47,7 @@ static struct hlist_head *dev_table;
47 */ 47 */
48int ovs_vport_init(void) 48int ovs_vport_init(void)
49{ 49{
50 dev_table = kzalloc(VPORT_HASH_BUCKETS * sizeof(struct hlist_head), 50 dev_table = kcalloc(VPORT_HASH_BUCKETS, sizeof(struct hlist_head),
51 GFP_KERNEL); 51 GFP_KERNEL);
52 if (!dev_table) 52 if (!dev_table)
53 return -ENOMEM; 53 return -ENOMEM;
diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
index ee018564b2b4..50809748c127 100644
--- a/net/packet/af_packet.c
+++ b/net/packet/af_packet.c
@@ -4161,7 +4161,7 @@ static char *alloc_one_pg_vec_page(unsigned long order)
4161 return buffer; 4161 return buffer;
4162 4162
4163 /* __get_free_pages failed, fall back to vmalloc */ 4163 /* __get_free_pages failed, fall back to vmalloc */
4164 buffer = vzalloc((1 << order) * PAGE_SIZE); 4164 buffer = vzalloc(array_size((1 << order), PAGE_SIZE));
4165 if (buffer) 4165 if (buffer)
4166 return buffer; 4166 return buffer;
4167 4167
diff --git a/net/rds/ib.c b/net/rds/ib.c
index 02deee29e7f1..b6ad38e48f62 100644
--- a/net/rds/ib.c
+++ b/net/rds/ib.c
@@ -163,7 +163,8 @@ static void rds_ib_add_one(struct ib_device *device)
163 rds_ibdev->max_initiator_depth = device->attrs.max_qp_init_rd_atom; 163 rds_ibdev->max_initiator_depth = device->attrs.max_qp_init_rd_atom;
164 rds_ibdev->max_responder_resources = device->attrs.max_qp_rd_atom; 164 rds_ibdev->max_responder_resources = device->attrs.max_qp_rd_atom;
165 165
166 rds_ibdev->vector_load = kzalloc(sizeof(int) * device->num_comp_vectors, 166 rds_ibdev->vector_load = kcalloc(device->num_comp_vectors,
167 sizeof(int),
167 GFP_KERNEL); 168 GFP_KERNEL);
168 if (!rds_ibdev->vector_load) { 169 if (!rds_ibdev->vector_load) {
169 pr_err("RDS/IB: %s failed to allocate vector memory\n", 170 pr_err("RDS/IB: %s failed to allocate vector memory\n",
diff --git a/net/rds/ib_cm.c b/net/rds/ib_cm.c
index 13b38ad0fa4a..f1684ae6abfd 100644
--- a/net/rds/ib_cm.c
+++ b/net/rds/ib_cm.c
@@ -526,7 +526,8 @@ static int rds_ib_setup_qp(struct rds_connection *conn)
526 goto recv_hdrs_dma_out; 526 goto recv_hdrs_dma_out;
527 } 527 }
528 528
529 ic->i_sends = vzalloc_node(ic->i_send_ring.w_nr * sizeof(struct rds_ib_send_work), 529 ic->i_sends = vzalloc_node(array_size(sizeof(struct rds_ib_send_work),
530 ic->i_send_ring.w_nr),
530 ibdev_to_node(dev)); 531 ibdev_to_node(dev));
531 if (!ic->i_sends) { 532 if (!ic->i_sends) {
532 ret = -ENOMEM; 533 ret = -ENOMEM;
@@ -534,7 +535,8 @@ static int rds_ib_setup_qp(struct rds_connection *conn)
534 goto ack_dma_out; 535 goto ack_dma_out;
535 } 536 }
536 537
537 ic->i_recvs = vzalloc_node(ic->i_recv_ring.w_nr * sizeof(struct rds_ib_recv_work), 538 ic->i_recvs = vzalloc_node(array_size(sizeof(struct rds_ib_recv_work),
539 ic->i_recv_ring.w_nr),
538 ibdev_to_node(dev)); 540 ibdev_to_node(dev));
539 if (!ic->i_recvs) { 541 if (!ic->i_recvs) {
540 ret = -ENOMEM; 542 ret = -ENOMEM;
diff --git a/net/rds/info.c b/net/rds/info.c
index 140a44a5f7b7..e367a97a18c8 100644
--- a/net/rds/info.c
+++ b/net/rds/info.c
@@ -188,7 +188,7 @@ int rds_info_getsockopt(struct socket *sock, int optname, char __user *optval,
188 nr_pages = (PAGE_ALIGN(start + len) - (start & PAGE_MASK)) 188 nr_pages = (PAGE_ALIGN(start + len) - (start & PAGE_MASK))
189 >> PAGE_SHIFT; 189 >> PAGE_SHIFT;
190 190
191 pages = kmalloc(nr_pages * sizeof(struct page *), GFP_KERNEL); 191 pages = kmalloc_array(nr_pages, sizeof(struct page *), GFP_KERNEL);
192 if (!pages) { 192 if (!pages) {
193 ret = -ENOMEM; 193 ret = -ENOMEM;
194 goto out; 194 goto out;
diff --git a/net/rose/af_rose.c b/net/rose/af_rose.c
index 5b73fea849df..ebe42e7eb456 100644
--- a/net/rose/af_rose.c
+++ b/net/rose/af_rose.c
@@ -1514,7 +1514,8 @@ static int __init rose_proto_init(void)
1514 1514
1515 rose_callsign = null_ax25_address; 1515 rose_callsign = null_ax25_address;
1516 1516
1517 dev_rose = kzalloc(rose_ndevs * sizeof(struct net_device *), GFP_KERNEL); 1517 dev_rose = kcalloc(rose_ndevs, sizeof(struct net_device *),
1518 GFP_KERNEL);
1518 if (dev_rose == NULL) { 1519 if (dev_rose == NULL) {
1519 printk(KERN_ERR "ROSE: rose_proto_init - unable to allocate device structure\n"); 1520 printk(KERN_ERR "ROSE: rose_proto_init - unable to allocate device structure\n");
1520 rc = -ENOMEM; 1521 rc = -ENOMEM;
diff --git a/net/rxrpc/rxkad.c b/net/rxrpc/rxkad.c
index 6c0ae27fff84..278ac0807a60 100644
--- a/net/rxrpc/rxkad.c
+++ b/net/rxrpc/rxkad.c
@@ -432,7 +432,7 @@ static int rxkad_verify_packet_2(struct rxrpc_call *call, struct sk_buff *skb,
432 432
433 sg = _sg; 433 sg = _sg;
434 if (unlikely(nsg > 4)) { 434 if (unlikely(nsg > 4)) {
435 sg = kmalloc(sizeof(*sg) * nsg, GFP_NOIO); 435 sg = kmalloc_array(nsg, sizeof(*sg), GFP_NOIO);
436 if (!sg) 436 if (!sg)
437 goto nomem; 437 goto nomem;
438 } 438 }
diff --git a/net/sched/sch_fq_codel.c b/net/sched/sch_fq_codel.c
index 22fa13cf5d8b..cd2e0e342fb6 100644
--- a/net/sched/sch_fq_codel.c
+++ b/net/sched/sch_fq_codel.c
@@ -489,11 +489,12 @@ static int fq_codel_init(struct Qdisc *sch, struct nlattr *opt,
489 return err; 489 return err;
490 490
491 if (!q->flows) { 491 if (!q->flows) {
492 q->flows = kvzalloc(q->flows_cnt * 492 q->flows = kvcalloc(q->flows_cnt,
493 sizeof(struct fq_codel_flow), GFP_KERNEL); 493 sizeof(struct fq_codel_flow),
494 GFP_KERNEL);
494 if (!q->flows) 495 if (!q->flows)
495 return -ENOMEM; 496 return -ENOMEM;
496 q->backlogs = kvzalloc(q->flows_cnt * sizeof(u32), GFP_KERNEL); 497 q->backlogs = kvcalloc(q->flows_cnt, sizeof(u32), GFP_KERNEL);
497 if (!q->backlogs) 498 if (!q->backlogs)
498 return -ENOMEM; 499 return -ENOMEM;
499 for (i = 0; i < q->flows_cnt; i++) { 500 for (i = 0; i < q->flows_cnt; i++) {
diff --git a/net/sched/sch_hhf.c b/net/sched/sch_hhf.c
index bce2632212d3..c3a8388dcdf6 100644
--- a/net/sched/sch_hhf.c
+++ b/net/sched/sch_hhf.c
@@ -599,8 +599,8 @@ static int hhf_init(struct Qdisc *sch, struct nlattr *opt,
599 599
600 if (!q->hh_flows) { 600 if (!q->hh_flows) {
601 /* Initialize heavy-hitter flow table. */ 601 /* Initialize heavy-hitter flow table. */
602 q->hh_flows = kvzalloc(HH_FLOWS_CNT * 602 q->hh_flows = kvcalloc(HH_FLOWS_CNT, sizeof(struct list_head),
603 sizeof(struct list_head), GFP_KERNEL); 603 GFP_KERNEL);
604 if (!q->hh_flows) 604 if (!q->hh_flows)
605 return -ENOMEM; 605 return -ENOMEM;
606 for (i = 0; i < HH_FLOWS_CNT; i++) 606 for (i = 0; i < HH_FLOWS_CNT; i++)
@@ -614,8 +614,9 @@ static int hhf_init(struct Qdisc *sch, struct nlattr *opt,
614 614
615 /* Initialize heavy-hitter filter arrays. */ 615 /* Initialize heavy-hitter filter arrays. */
616 for (i = 0; i < HHF_ARRAYS_CNT; i++) { 616 for (i = 0; i < HHF_ARRAYS_CNT; i++) {
617 q->hhf_arrays[i] = kvzalloc(HHF_ARRAYS_LEN * 617 q->hhf_arrays[i] = kvcalloc(HHF_ARRAYS_LEN,
618 sizeof(u32), GFP_KERNEL); 618 sizeof(u32),
619 GFP_KERNEL);
619 if (!q->hhf_arrays[i]) { 620 if (!q->hhf_arrays[i]) {
620 /* Note: hhf_destroy() will be called 621 /* Note: hhf_destroy() will be called
621 * by our caller. 622 * by our caller.
diff --git a/net/sctp/auth.c b/net/sctp/auth.c
index e64630cd3331..5b537613946f 100644
--- a/net/sctp/auth.c
+++ b/net/sctp/auth.c
@@ -482,8 +482,9 @@ int sctp_auth_init_hmacs(struct sctp_endpoint *ep, gfp_t gfp)
482 return 0; 482 return 0;
483 483
484 /* Allocated the array of pointers to transorms */ 484 /* Allocated the array of pointers to transorms */
485 ep->auth_hmacs = kzalloc(sizeof(struct crypto_shash *) * 485 ep->auth_hmacs = kcalloc(SCTP_AUTH_NUM_HMACS,
486 SCTP_AUTH_NUM_HMACS, gfp); 486 sizeof(struct crypto_shash *),
487 gfp);
487 if (!ep->auth_hmacs) 488 if (!ep->auth_hmacs)
488 return -ENOMEM; 489 return -ENOMEM;
489 490
diff --git a/net/sctp/protocol.c b/net/sctp/protocol.c
index 11d93377ba5e..5dffbc493008 100644
--- a/net/sctp/protocol.c
+++ b/net/sctp/protocol.c
@@ -1438,7 +1438,7 @@ static __init int sctp_init(void)
1438 /* Allocate and initialize the endpoint hash table. */ 1438 /* Allocate and initialize the endpoint hash table. */
1439 sctp_ep_hashsize = 64; 1439 sctp_ep_hashsize = 64;
1440 sctp_ep_hashtable = 1440 sctp_ep_hashtable =
1441 kmalloc(64 * sizeof(struct sctp_hashbucket), GFP_KERNEL); 1441 kmalloc_array(64, sizeof(struct sctp_hashbucket), GFP_KERNEL);
1442 if (!sctp_ep_hashtable) { 1442 if (!sctp_ep_hashtable) {
1443 pr_err("Failed endpoint_hash alloc\n"); 1443 pr_err("Failed endpoint_hash alloc\n");
1444 status = -ENOMEM; 1444 status = -ENOMEM;
diff --git a/net/smc/smc_wr.c b/net/smc/smc_wr.c
index cc7c1bb60fe8..dbd2605d1962 100644
--- a/net/smc/smc_wr.c
+++ b/net/smc/smc_wr.c
@@ -584,9 +584,9 @@ int smc_wr_alloc_link_mem(struct smc_link *link)
584 GFP_KERNEL); 584 GFP_KERNEL);
585 if (!link->wr_rx_sges) 585 if (!link->wr_rx_sges)
586 goto no_mem_wr_tx_sges; 586 goto no_mem_wr_tx_sges;
587 link->wr_tx_mask = kzalloc( 587 link->wr_tx_mask = kcalloc(BITS_TO_LONGS(SMC_WR_BUF_CNT),
588 BITS_TO_LONGS(SMC_WR_BUF_CNT) * sizeof(*link->wr_tx_mask), 588 sizeof(*link->wr_tx_mask),
589 GFP_KERNEL); 589 GFP_KERNEL);
590 if (!link->wr_tx_mask) 590 if (!link->wr_tx_mask)
591 goto no_mem_wr_rx_sges; 591 goto no_mem_wr_rx_sges;
592 link->wr_tx_pends = kcalloc(SMC_WR_BUF_CNT, 592 link->wr_tx_pends = kcalloc(SMC_WR_BUF_CNT,
diff --git a/net/sunrpc/auth_gss/auth_gss.c b/net/sunrpc/auth_gss/auth_gss.c
index 9463af4b32e8..be8f103d22fd 100644
--- a/net/sunrpc/auth_gss/auth_gss.c
+++ b/net/sunrpc/auth_gss/auth_gss.c
@@ -1753,7 +1753,8 @@ alloc_enc_pages(struct rpc_rqst *rqstp)
1753 last = (snd_buf->page_base + snd_buf->page_len - 1) >> PAGE_SHIFT; 1753 last = (snd_buf->page_base + snd_buf->page_len - 1) >> PAGE_SHIFT;
1754 rqstp->rq_enc_pages_num = last - first + 1 + 1; 1754 rqstp->rq_enc_pages_num = last - first + 1 + 1;
1755 rqstp->rq_enc_pages 1755 rqstp->rq_enc_pages
1756 = kmalloc(rqstp->rq_enc_pages_num * sizeof(struct page *), 1756 = kmalloc_array(rqstp->rq_enc_pages_num,
1757 sizeof(struct page *),
1757 GFP_NOFS); 1758 GFP_NOFS);
1758 if (!rqstp->rq_enc_pages) 1759 if (!rqstp->rq_enc_pages)
1759 goto out; 1760 goto out;
diff --git a/net/sunrpc/auth_gss/gss_rpc_upcall.c b/net/sunrpc/auth_gss/gss_rpc_upcall.c
index d98e2b610ce8..1c7c49dbf8ba 100644
--- a/net/sunrpc/auth_gss/gss_rpc_upcall.c
+++ b/net/sunrpc/auth_gss/gss_rpc_upcall.c
@@ -224,7 +224,7 @@ static void gssp_free_receive_pages(struct gssx_arg_accept_sec_context *arg)
224static int gssp_alloc_receive_pages(struct gssx_arg_accept_sec_context *arg) 224static int gssp_alloc_receive_pages(struct gssx_arg_accept_sec_context *arg)
225{ 225{
226 arg->npages = DIV_ROUND_UP(NGROUPS_MAX * 4, PAGE_SIZE); 226 arg->npages = DIV_ROUND_UP(NGROUPS_MAX * 4, PAGE_SIZE);
227 arg->pages = kzalloc(arg->npages * sizeof(struct page *), GFP_KERNEL); 227 arg->pages = kcalloc(arg->npages, sizeof(struct page *), GFP_KERNEL);
228 /* 228 /*
229 * XXX: actual pages are allocated by xdr layer in 229 * XXX: actual pages are allocated by xdr layer in
230 * xdr_partial_copy_from_skb. 230 * xdr_partial_copy_from_skb.
diff --git a/net/sunrpc/cache.c b/net/sunrpc/cache.c
index cdda4744c9b1..109fbe591e7b 100644
--- a/net/sunrpc/cache.c
+++ b/net/sunrpc/cache.c
@@ -1683,7 +1683,7 @@ struct cache_detail *cache_create_net(const struct cache_detail *tmpl, struct ne
1683 if (cd == NULL) 1683 if (cd == NULL)
1684 return ERR_PTR(-ENOMEM); 1684 return ERR_PTR(-ENOMEM);
1685 1685
1686 cd->hash_table = kzalloc(cd->hash_size * sizeof(struct hlist_head), 1686 cd->hash_table = kcalloc(cd->hash_size, sizeof(struct hlist_head),
1687 GFP_KERNEL); 1687 GFP_KERNEL);
1688 if (cd->hash_table == NULL) { 1688 if (cd->hash_table == NULL) {
1689 kfree(cd); 1689 kfree(cd);
diff --git a/net/tipc/netlink_compat.c b/net/tipc/netlink_compat.c
index 4492cda45566..a2f76743c73a 100644
--- a/net/tipc/netlink_compat.c
+++ b/net/tipc/netlink_compat.c
@@ -285,8 +285,9 @@ static int __tipc_nl_compat_doit(struct tipc_nl_compat_cmd_doit *cmd,
285 if (!trans_buf) 285 if (!trans_buf)
286 return -ENOMEM; 286 return -ENOMEM;
287 287
288 attrbuf = kmalloc((tipc_genl_family.maxattr + 1) * 288 attrbuf = kmalloc_array(tipc_genl_family.maxattr + 1,
289 sizeof(struct nlattr *), GFP_KERNEL); 289 sizeof(struct nlattr *),
290 GFP_KERNEL);
290 if (!attrbuf) { 291 if (!attrbuf) {
291 err = -ENOMEM; 292 err = -ENOMEM;
292 goto trans_out; 293 goto trans_out;
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index 07514ca011b2..c7bbe5f0aae8 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -10833,7 +10833,7 @@ static int nl80211_parse_wowlan_nd(struct cfg80211_registered_device *rdev,
10833 struct nlattr **tb; 10833 struct nlattr **tb;
10834 int err; 10834 int err;
10835 10835
10836 tb = kzalloc(NUM_NL80211_ATTR * sizeof(*tb), GFP_KERNEL); 10836 tb = kcalloc(NUM_NL80211_ATTR, sizeof(*tb), GFP_KERNEL);
10837 if (!tb) 10837 if (!tb)
10838 return -ENOMEM; 10838 return -ENOMEM;
10839 10839
@@ -11793,7 +11793,7 @@ static int nl80211_nan_add_func(struct sk_buff *skb,
11793 11793
11794 func->srf_num_macs = n_entries; 11794 func->srf_num_macs = n_entries;
11795 func->srf_macs = 11795 func->srf_macs =
11796 kzalloc(sizeof(*func->srf_macs) * n_entries, 11796 kcalloc(n_entries, sizeof(*func->srf_macs),
11797 GFP_KERNEL); 11797 GFP_KERNEL);
11798 if (!func->srf_macs) { 11798 if (!func->srf_macs) {
11799 err = -ENOMEM; 11799 err = -ENOMEM;
diff --git a/security/apparmor/policy_unpack.c b/security/apparmor/policy_unpack.c
index b9e6b2cafa69..0e566a01d217 100644
--- a/security/apparmor/policy_unpack.c
+++ b/security/apparmor/policy_unpack.c
@@ -475,7 +475,7 @@ static bool unpack_trans_table(struct aa_ext *e, struct aa_profile *profile)
475 /* currently 4 exec bits and entries 0-3 are reserved iupcx */ 475 /* currently 4 exec bits and entries 0-3 are reserved iupcx */
476 if (size > 16 - 4) 476 if (size > 16 - 4)
477 goto fail; 477 goto fail;
478 profile->file.trans.table = kzalloc(sizeof(char *) * size, 478 profile->file.trans.table = kcalloc(size, sizeof(char *),
479 GFP_KERNEL); 479 GFP_KERNEL);
480 if (!profile->file.trans.table) 480 if (!profile->file.trans.table)
481 goto fail; 481 goto fail;
diff --git a/security/keys/trusted.c b/security/keys/trusted.c
index 423776682025..b69d3b1777c2 100644
--- a/security/keys/trusted.c
+++ b/security/keys/trusted.c
@@ -1148,7 +1148,7 @@ static long trusted_read(const struct key *key, char __user *buffer,
1148 return -EINVAL; 1148 return -EINVAL;
1149 1149
1150 if (buffer && buflen >= 2 * p->blob_len) { 1150 if (buffer && buflen >= 2 * p->blob_len) {
1151 ascii_buf = kmalloc(2 * p->blob_len, GFP_KERNEL); 1151 ascii_buf = kmalloc_array(2, p->blob_len, GFP_KERNEL);
1152 if (!ascii_buf) 1152 if (!ascii_buf)
1153 return -ENOMEM; 1153 return -ENOMEM;
1154 1154
diff --git a/security/selinux/ss/services.c b/security/selinux/ss/services.c
index a2d44824121c..dd2ceec06fef 100644
--- a/security/selinux/ss/services.c
+++ b/security/selinux/ss/services.c
@@ -2118,7 +2118,7 @@ int security_load_policy(struct selinux_state *state, void *data, size_t len)
2118 int rc = 0; 2118 int rc = 0;
2119 struct policy_file file = { data, len }, *fp = &file; 2119 struct policy_file file = { data, len }, *fp = &file;
2120 2120
2121 oldpolicydb = kzalloc(2 * sizeof(*oldpolicydb), GFP_KERNEL); 2121 oldpolicydb = kcalloc(2, sizeof(*oldpolicydb), GFP_KERNEL);
2122 if (!oldpolicydb) { 2122 if (!oldpolicydb) {
2123 rc = -ENOMEM; 2123 rc = -ENOMEM;
2124 goto out; 2124 goto out;
diff --git a/sound/core/pcm_compat.c b/sound/core/pcm_compat.c
index 39d853bfa5ac..946ab080ac00 100644
--- a/sound/core/pcm_compat.c
+++ b/sound/core/pcm_compat.c
@@ -426,7 +426,7 @@ static int snd_pcm_ioctl_xfern_compat(struct snd_pcm_substream *substream,
426 get_user(frames, &data32->frames)) 426 get_user(frames, &data32->frames))
427 return -EFAULT; 427 return -EFAULT;
428 bufptr = compat_ptr(buf); 428 bufptr = compat_ptr(buf);
429 bufs = kmalloc(sizeof(void __user *) * ch, GFP_KERNEL); 429 bufs = kmalloc_array(ch, sizeof(void __user *), GFP_KERNEL);
430 if (bufs == NULL) 430 if (bufs == NULL)
431 return -ENOMEM; 431 return -ENOMEM;
432 for (i = 0; i < ch; i++) { 432 for (i = 0; i < ch; i++) {
diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c
index 04c6301394d0..cecc79772c94 100644
--- a/sound/core/pcm_native.c
+++ b/sound/core/pcm_native.c
@@ -3072,7 +3072,7 @@ static ssize_t snd_pcm_readv(struct kiocb *iocb, struct iov_iter *to)
3072 if (!frame_aligned(runtime, to->iov->iov_len)) 3072 if (!frame_aligned(runtime, to->iov->iov_len))
3073 return -EINVAL; 3073 return -EINVAL;
3074 frames = bytes_to_samples(runtime, to->iov->iov_len); 3074 frames = bytes_to_samples(runtime, to->iov->iov_len);
3075 bufs = kmalloc(sizeof(void *) * to->nr_segs, GFP_KERNEL); 3075 bufs = kmalloc_array(to->nr_segs, sizeof(void *), GFP_KERNEL);
3076 if (bufs == NULL) 3076 if (bufs == NULL)
3077 return -ENOMEM; 3077 return -ENOMEM;
3078 for (i = 0; i < to->nr_segs; ++i) 3078 for (i = 0; i < to->nr_segs; ++i)
@@ -3107,7 +3107,7 @@ static ssize_t snd_pcm_writev(struct kiocb *iocb, struct iov_iter *from)
3107 !frame_aligned(runtime, from->iov->iov_len)) 3107 !frame_aligned(runtime, from->iov->iov_len))
3108 return -EINVAL; 3108 return -EINVAL;
3109 frames = bytes_to_samples(runtime, from->iov->iov_len); 3109 frames = bytes_to_samples(runtime, from->iov->iov_len);
3110 bufs = kmalloc(sizeof(void *) * from->nr_segs, GFP_KERNEL); 3110 bufs = kmalloc_array(from->nr_segs, sizeof(void *), GFP_KERNEL);
3111 if (bufs == NULL) 3111 if (bufs == NULL)
3112 return -ENOMEM; 3112 return -ENOMEM;
3113 for (i = 0; i < from->nr_segs; ++i) 3113 for (i = 0; i < from->nr_segs; ++i)
diff --git a/sound/core/seq/seq_memory.c b/sound/core/seq/seq_memory.c
index ab1112e90f88..a4c8543176b2 100644
--- a/sound/core/seq/seq_memory.c
+++ b/sound/core/seq/seq_memory.c
@@ -389,7 +389,8 @@ int snd_seq_pool_init(struct snd_seq_pool *pool)
389 if (snd_BUG_ON(!pool)) 389 if (snd_BUG_ON(!pool))
390 return -EINVAL; 390 return -EINVAL;
391 391
392 cellptr = vmalloc(sizeof(struct snd_seq_event_cell) * pool->size); 392 cellptr = vmalloc(array_size(sizeof(struct snd_seq_event_cell),
393 pool->size));
393 if (!cellptr) 394 if (!cellptr)
394 return -ENOMEM; 395 return -ENOMEM;
395 396
diff --git a/sound/core/seq/seq_midi_emul.c b/sound/core/seq/seq_midi_emul.c
index 9e2912e3e80f..288f839a554b 100644
--- a/sound/core/seq/seq_midi_emul.c
+++ b/sound/core/seq/seq_midi_emul.c
@@ -657,7 +657,7 @@ static struct snd_midi_channel *snd_midi_channel_init_set(int n)
657 struct snd_midi_channel *chan; 657 struct snd_midi_channel *chan;
658 int i; 658 int i;
659 659
660 chan = kmalloc(n * sizeof(struct snd_midi_channel), GFP_KERNEL); 660 chan = kmalloc_array(n, sizeof(struct snd_midi_channel), GFP_KERNEL);
661 if (chan) { 661 if (chan) {
662 for (i = 0; i < n; i++) 662 for (i = 0; i < n; i++)
663 snd_midi_channel_init(chan+i, i); 663 snd_midi_channel_init(chan+i, i);
diff --git a/sound/firewire/fireface/ff-protocol-ff400.c b/sound/firewire/fireface/ff-protocol-ff400.c
index 12aa15df435d..ad7a0a32557d 100644
--- a/sound/firewire/fireface/ff-protocol-ff400.c
+++ b/sound/firewire/fireface/ff-protocol-ff400.c
@@ -147,7 +147,7 @@ static int ff400_switch_fetching_mode(struct snd_ff *ff, bool enable)
147 __le32 *reg; 147 __le32 *reg;
148 int i; 148 int i;
149 149
150 reg = kzalloc(sizeof(__le32) * 18, GFP_KERNEL); 150 reg = kcalloc(18, sizeof(__le32), GFP_KERNEL);
151 if (reg == NULL) 151 if (reg == NULL)
152 return -ENOMEM; 152 return -ENOMEM;
153 153
diff --git a/sound/firewire/packets-buffer.c b/sound/firewire/packets-buffer.c
index ea1506679c66..1ebf00c83409 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,
27 void *p; 27 void *p;
28 int err; 28 int err;
29 29
30 b->packets = kmalloc(count * sizeof(*b->packets), GFP_KERNEL); 30 b->packets = kmalloc_array(count, sizeof(*b->packets), GFP_KERNEL);
31 if (!b->packets) { 31 if (!b->packets) {
32 err = -ENOMEM; 32 err = -ENOMEM;
33 goto error; 33 goto error;
diff --git a/sound/oss/dmasound/dmasound_core.c b/sound/oss/dmasound/dmasound_core.c
index 8c0f8a9ee0ba..fc9bcd47d6a4 100644
--- a/sound/oss/dmasound/dmasound_core.c
+++ b/sound/oss/dmasound/dmasound_core.c
@@ -420,7 +420,7 @@ static int sq_allocate_buffers(struct sound_queue *sq, int num, int size)
420 return 0; 420 return 0;
421 sq->numBufs = num; 421 sq->numBufs = num;
422 sq->bufSize = size; 422 sq->bufSize = size;
423 sq->buffers = kmalloc (num * sizeof(char *), GFP_KERNEL); 423 sq->buffers = kmalloc_array (num, sizeof(char *), GFP_KERNEL);
424 if (!sq->buffers) 424 if (!sq->buffers)
425 return -ENOMEM; 425 return -ENOMEM;
426 for (i = 0; i < num; i++) { 426 for (i = 0; i < num; i++) {
diff --git a/sound/pci/cs46xx/cs46xx_lib.c b/sound/pci/cs46xx/cs46xx_lib.c
index ed1251c5f449..146e1a3498c7 100644
--- a/sound/pci/cs46xx/cs46xx_lib.c
+++ b/sound/pci/cs46xx/cs46xx_lib.c
@@ -460,7 +460,7 @@ static int load_firmware(struct snd_cs46xx *chip,
460 entry->size = le32_to_cpu(fwdat[fwlen++]); 460 entry->size = le32_to_cpu(fwdat[fwlen++]);
461 if (fwlen + entry->size > fwsize) 461 if (fwlen + entry->size > fwsize)
462 goto error_inval; 462 goto error_inval;
463 entry->data = kmalloc(entry->size * 4, GFP_KERNEL); 463 entry->data = kmalloc_array(entry->size, 4, GFP_KERNEL);
464 if (!entry->data) 464 if (!entry->data)
465 goto error; 465 goto error;
466 memcpy_le32(entry->data, &fwdat[fwlen], entry->size * 4); 466 memcpy_le32(entry->data, &fwdat[fwlen], entry->size * 4);
@@ -4036,8 +4036,9 @@ int snd_cs46xx_create(struct snd_card *card,
4036 snd_cs46xx_proc_init(card, chip); 4036 snd_cs46xx_proc_init(card, chip);
4037 4037
4038#ifdef CONFIG_PM_SLEEP 4038#ifdef CONFIG_PM_SLEEP
4039 chip->saved_regs = kmalloc(sizeof(*chip->saved_regs) * 4039 chip->saved_regs = kmalloc_array(ARRAY_SIZE(saved_regs),
4040 ARRAY_SIZE(saved_regs), GFP_KERNEL); 4040 sizeof(*chip->saved_regs),
4041 GFP_KERNEL);
4041 if (!chip->saved_regs) { 4042 if (!chip->saved_regs) {
4042 snd_cs46xx_free(chip); 4043 snd_cs46xx_free(chip);
4043 return -ENOMEM; 4044 return -ENOMEM;
diff --git a/sound/pci/cs46xx/dsp_spos.c b/sound/pci/cs46xx/dsp_spos.c
index c44eadef64ae..598d140bb7cb 100644
--- a/sound/pci/cs46xx/dsp_spos.c
+++ b/sound/pci/cs46xx/dsp_spos.c
@@ -240,10 +240,13 @@ struct dsp_spos_instance *cs46xx_dsp_spos_create (struct snd_cs46xx * chip)
240 return NULL; 240 return NULL;
241 241
242 /* better to use vmalloc for this big table */ 242 /* better to use vmalloc for this big table */
243 ins->symbol_table.symbols = vmalloc(sizeof(struct dsp_symbol_entry) * 243 ins->symbol_table.symbols =
244 DSP_MAX_SYMBOLS); 244 vmalloc(array_size(DSP_MAX_SYMBOLS,
245 sizeof(struct dsp_symbol_entry)));
245 ins->code.data = kmalloc(DSP_CODE_BYTE_SIZE, GFP_KERNEL); 246 ins->code.data = kmalloc(DSP_CODE_BYTE_SIZE, GFP_KERNEL);
246 ins->modules = kmalloc(sizeof(struct dsp_module_desc) * DSP_MAX_MODULES, GFP_KERNEL); 247 ins->modules = kmalloc_array(DSP_MAX_MODULES,
248 sizeof(struct dsp_module_desc),
249 GFP_KERNEL);
247 if (!ins->symbol_table.symbols || !ins->code.data || !ins->modules) { 250 if (!ins->symbol_table.symbols || !ins->code.data || !ins->modules) {
248 cs46xx_dsp_spos_destroy(chip); 251 cs46xx_dsp_spos_destroy(chip);
249 goto error; 252 goto error;
diff --git a/sound/pci/ctxfi/ctatc.c b/sound/pci/ctxfi/ctatc.c
index 908658a00377..2ada8444abd9 100644
--- a/sound/pci/ctxfi/ctatc.c
+++ b/sound/pci/ctxfi/ctatc.c
@@ -275,7 +275,7 @@ static int atc_pcm_playback_prepare(struct ct_atc *atc, struct ct_atc_pcm *apcm)
275 275
276 /* Get AMIXER resource */ 276 /* Get AMIXER resource */
277 n_amixer = (n_amixer < 2) ? 2 : n_amixer; 277 n_amixer = (n_amixer < 2) ? 2 : n_amixer;
278 apcm->amixers = kzalloc(sizeof(void *)*n_amixer, GFP_KERNEL); 278 apcm->amixers = kcalloc(n_amixer, sizeof(void *), GFP_KERNEL);
279 if (!apcm->amixers) { 279 if (!apcm->amixers) {
280 err = -ENOMEM; 280 err = -ENOMEM;
281 goto error1; 281 goto error1;
@@ -543,18 +543,18 @@ atc_pcm_capture_get_resources(struct ct_atc *atc, struct ct_atc_pcm *apcm)
543 } 543 }
544 544
545 if (n_srcc) { 545 if (n_srcc) {
546 apcm->srccs = kzalloc(sizeof(void *)*n_srcc, GFP_KERNEL); 546 apcm->srccs = kcalloc(n_srcc, sizeof(void *), GFP_KERNEL);
547 if (!apcm->srccs) 547 if (!apcm->srccs)
548 return -ENOMEM; 548 return -ENOMEM;
549 } 549 }
550 if (n_amixer) { 550 if (n_amixer) {
551 apcm->amixers = kzalloc(sizeof(void *)*n_amixer, GFP_KERNEL); 551 apcm->amixers = kcalloc(n_amixer, sizeof(void *), GFP_KERNEL);
552 if (!apcm->amixers) { 552 if (!apcm->amixers) {
553 err = -ENOMEM; 553 err = -ENOMEM;
554 goto error1; 554 goto error1;
555 } 555 }
556 } 556 }
557 apcm->srcimps = kzalloc(sizeof(void *)*n_srcimp, GFP_KERNEL); 557 apcm->srcimps = kcalloc(n_srcimp, sizeof(void *), GFP_KERNEL);
558 if (!apcm->srcimps) { 558 if (!apcm->srcimps) {
559 err = -ENOMEM; 559 err = -ENOMEM;
560 goto error1; 560 goto error1;
@@ -819,7 +819,7 @@ static int spdif_passthru_playback_get_resources(struct ct_atc *atc,
819 819
820 /* Get AMIXER resource */ 820 /* Get AMIXER resource */
821 n_amixer = (n_amixer < 2) ? 2 : n_amixer; 821 n_amixer = (n_amixer < 2) ? 2 : n_amixer;
822 apcm->amixers = kzalloc(sizeof(void *)*n_amixer, GFP_KERNEL); 822 apcm->amixers = kcalloc(n_amixer, sizeof(void *), GFP_KERNEL);
823 if (!apcm->amixers) { 823 if (!apcm->amixers) {
824 err = -ENOMEM; 824 err = -ENOMEM;
825 goto error1; 825 goto error1;
@@ -1378,19 +1378,19 @@ static int atc_get_resources(struct ct_atc *atc)
1378 num_daios = ((atc->model == CTSB1270) ? 8 : 7); 1378 num_daios = ((atc->model == CTSB1270) ? 8 : 7);
1379 num_srcs = ((atc->model == CTSB1270) ? 6 : 4); 1379 num_srcs = ((atc->model == CTSB1270) ? 6 : 4);
1380 1380
1381 atc->daios = kzalloc(sizeof(void *)*num_daios, GFP_KERNEL); 1381 atc->daios = kcalloc(num_daios, sizeof(void *), GFP_KERNEL);
1382 if (!atc->daios) 1382 if (!atc->daios)
1383 return -ENOMEM; 1383 return -ENOMEM;
1384 1384
1385 atc->srcs = kzalloc(sizeof(void *)*num_srcs, GFP_KERNEL); 1385 atc->srcs = kcalloc(num_srcs, sizeof(void *), GFP_KERNEL);
1386 if (!atc->srcs) 1386 if (!atc->srcs)
1387 return -ENOMEM; 1387 return -ENOMEM;
1388 1388
1389 atc->srcimps = kzalloc(sizeof(void *)*num_srcs, GFP_KERNEL); 1389 atc->srcimps = kcalloc(num_srcs, sizeof(void *), GFP_KERNEL);
1390 if (!atc->srcimps) 1390 if (!atc->srcimps)
1391 return -ENOMEM; 1391 return -ENOMEM;
1392 1392
1393 atc->pcm = kzalloc(sizeof(void *)*(2*4), GFP_KERNEL); 1393 atc->pcm = kcalloc(2 * 4, sizeof(void *), GFP_KERNEL);
1394 if (!atc->pcm) 1394 if (!atc->pcm)
1395 return -ENOMEM; 1395 return -ENOMEM;
1396 1396
diff --git a/sound/pci/ctxfi/ctdaio.c b/sound/pci/ctxfi/ctdaio.c
index 7f089cb433e1..f35a7341e446 100644
--- a/sound/pci/ctxfi/ctdaio.c
+++ b/sound/pci/ctxfi/ctdaio.c
@@ -398,7 +398,8 @@ static int dao_rsc_init(struct dao *dao,
398 if (err) 398 if (err)
399 return err; 399 return err;
400 400
401 dao->imappers = kzalloc(sizeof(void *)*desc->msr*2, GFP_KERNEL); 401 dao->imappers = kzalloc(array3_size(sizeof(void *), desc->msr, 2),
402 GFP_KERNEL);
402 if (!dao->imappers) { 403 if (!dao->imappers) {
403 err = -ENOMEM; 404 err = -ENOMEM;
404 goto error1; 405 goto error1;
diff --git a/sound/pci/ctxfi/ctmixer.c b/sound/pci/ctxfi/ctmixer.c
index 4f4a2a5dedb8..db710d0a609f 100644
--- a/sound/pci/ctxfi/ctmixer.c
+++ b/sound/pci/ctxfi/ctmixer.c
@@ -910,13 +910,14 @@ static int ct_mixer_get_mem(struct ct_mixer **rmixer)
910 if (!mixer) 910 if (!mixer)
911 return -ENOMEM; 911 return -ENOMEM;
912 912
913 mixer->amixers = kzalloc(sizeof(void *)*(NUM_CT_AMIXERS*CHN_NUM), 913 mixer->amixers = kcalloc(NUM_CT_AMIXERS * CHN_NUM, sizeof(void *),
914 GFP_KERNEL); 914 GFP_KERNEL);
915 if (!mixer->amixers) { 915 if (!mixer->amixers) {
916 err = -ENOMEM; 916 err = -ENOMEM;
917 goto error1; 917 goto error1;
918 } 918 }
919 mixer->sums = kzalloc(sizeof(void *)*(NUM_CT_SUMS*CHN_NUM), GFP_KERNEL); 919 mixer->sums = kcalloc(NUM_CT_SUMS * CHN_NUM, sizeof(void *),
920 GFP_KERNEL);
920 if (!mixer->sums) { 921 if (!mixer->sums) {
921 err = -ENOMEM; 922 err = -ENOMEM;
922 goto error2; 923 goto error2;
diff --git a/sound/pci/ctxfi/ctsrc.c b/sound/pci/ctxfi/ctsrc.c
index bb4c9c3c89ae..a4fc10723fc6 100644
--- a/sound/pci/ctxfi/ctsrc.c
+++ b/sound/pci/ctxfi/ctsrc.c
@@ -679,7 +679,7 @@ static int srcimp_rsc_init(struct srcimp *srcimp,
679 return err; 679 return err;
680 680
681 /* Reserve memory for imapper nodes */ 681 /* Reserve memory for imapper nodes */
682 srcimp->imappers = kzalloc(sizeof(struct imapper)*desc->msr, 682 srcimp->imappers = kcalloc(desc->msr, sizeof(struct imapper),
683 GFP_KERNEL); 683 GFP_KERNEL);
684 if (!srcimp->imappers) { 684 if (!srcimp->imappers) {
685 err = -ENOMEM; 685 err = -ENOMEM;
diff --git a/sound/pci/emu10k1/emu10k1_main.c b/sound/pci/emu10k1/emu10k1_main.c
index 18267de3a269..61f85ff91cd9 100644
--- a/sound/pci/emu10k1/emu10k1_main.c
+++ b/sound/pci/emu10k1/emu10k1_main.c
@@ -1941,9 +1941,10 @@ int snd_emu10k1_create(struct snd_card *card,
1941 (unsigned long)emu->ptb_pages.addr, 1941 (unsigned long)emu->ptb_pages.addr,
1942 (unsigned long)(emu->ptb_pages.addr + emu->ptb_pages.bytes)); 1942 (unsigned long)(emu->ptb_pages.addr + emu->ptb_pages.bytes));
1943 1943
1944 emu->page_ptr_table = vmalloc(emu->max_cache_pages * sizeof(void *)); 1944 emu->page_ptr_table = vmalloc(array_size(sizeof(void *),
1945 emu->page_addr_table = vmalloc(emu->max_cache_pages * 1945 emu->max_cache_pages));
1946 sizeof(unsigned long)); 1946 emu->page_addr_table = vmalloc(array_size(sizeof(unsigned long),
1947 emu->max_cache_pages));
1947 if (emu->page_ptr_table == NULL || emu->page_addr_table == NULL) { 1948 if (emu->page_ptr_table == NULL || emu->page_addr_table == NULL) {
1948 err = -ENOMEM; 1949 err = -ENOMEM;
1949 goto error; 1950 goto error;
@@ -2099,7 +2100,7 @@ static int alloc_pm_buffer(struct snd_emu10k1 *emu)
2099 size = ARRAY_SIZE(saved_regs); 2100 size = ARRAY_SIZE(saved_regs);
2100 if (emu->audigy) 2101 if (emu->audigy)
2101 size += ARRAY_SIZE(saved_regs_audigy); 2102 size += ARRAY_SIZE(saved_regs_audigy);
2102 emu->saved_ptr = vmalloc(4 * NUM_G * size); 2103 emu->saved_ptr = vmalloc(array3_size(4, NUM_G, size));
2103 if (!emu->saved_ptr) 2104 if (!emu->saved_ptr)
2104 return -ENOMEM; 2105 return -ENOMEM;
2105 if (snd_emu10k1_efx_alloc_pm_buffer(emu) < 0) 2106 if (snd_emu10k1_efx_alloc_pm_buffer(emu) < 0)
diff --git a/sound/pci/emu10k1/emufx.c b/sound/pci/emu10k1/emufx.c
index b45a01bb73e5..de2ecbe95d6c 100644
--- a/sound/pci/emu10k1/emufx.c
+++ b/sound/pci/emu10k1/emufx.c
@@ -2683,16 +2683,16 @@ int snd_emu10k1_efx_alloc_pm_buffer(struct snd_emu10k1 *emu)
2683 int len; 2683 int len;
2684 2684
2685 len = emu->audigy ? 0x200 : 0x100; 2685 len = emu->audigy ? 0x200 : 0x100;
2686 emu->saved_gpr = kmalloc(len * 4, GFP_KERNEL); 2686 emu->saved_gpr = kmalloc_array(len, 4, GFP_KERNEL);
2687 if (! emu->saved_gpr) 2687 if (! emu->saved_gpr)
2688 return -ENOMEM; 2688 return -ENOMEM;
2689 len = emu->audigy ? 0x100 : 0xa0; 2689 len = emu->audigy ? 0x100 : 0xa0;
2690 emu->tram_val_saved = kmalloc(len * 4, GFP_KERNEL); 2690 emu->tram_val_saved = kmalloc_array(len, 4, GFP_KERNEL);
2691 emu->tram_addr_saved = kmalloc(len * 4, GFP_KERNEL); 2691 emu->tram_addr_saved = kmalloc_array(len, 4, GFP_KERNEL);
2692 if (! emu->tram_val_saved || ! emu->tram_addr_saved) 2692 if (! emu->tram_val_saved || ! emu->tram_addr_saved)
2693 return -ENOMEM; 2693 return -ENOMEM;
2694 len = emu->audigy ? 2 * 1024 : 2 * 512; 2694 len = emu->audigy ? 2 * 1024 : 2 * 512;
2695 emu->saved_icode = vmalloc(len * 4); 2695 emu->saved_icode = vmalloc(array_size(len, 4));
2696 if (! emu->saved_icode) 2696 if (! emu->saved_icode)
2697 return -ENOMEM; 2697 return -ENOMEM;
2698 return 0; 2698 return 0;
diff --git a/sound/pci/emu10k1/p16v.c b/sound/pci/emu10k1/p16v.c
index a30da78a95b7..4948b95f6665 100644
--- a/sound/pci/emu10k1/p16v.c
+++ b/sound/pci/emu10k1/p16v.c
@@ -874,7 +874,7 @@ int snd_p16v_mixer(struct snd_emu10k1 *emu)
874 874
875int snd_p16v_alloc_pm_buffer(struct snd_emu10k1 *emu) 875int snd_p16v_alloc_pm_buffer(struct snd_emu10k1 *emu)
876{ 876{
877 emu->p16v_saved = vmalloc(NUM_CHS * 4 * 0x80); 877 emu->p16v_saved = vmalloc(array_size(NUM_CHS * 4, 0x80));
878 if (! emu->p16v_saved) 878 if (! emu->p16v_saved)
879 return -ENOMEM; 879 return -ENOMEM;
880 return 0; 880 return 0;
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
index 08151f3c0b13..d91c87e41756 100644
--- a/sound/pci/hda/hda_codec.c
+++ b/sound/pci/hda/hda_codec.c
@@ -158,7 +158,7 @@ static int read_and_add_raw_conns(struct hda_codec *codec, hda_nid_t nid)
158 len = snd_hda_get_raw_connections(codec, nid, list, ARRAY_SIZE(list)); 158 len = snd_hda_get_raw_connections(codec, nid, list, ARRAY_SIZE(list));
159 if (len == -ENOSPC) { 159 if (len == -ENOSPC) {
160 len = snd_hda_get_num_raw_conns(codec, nid); 160 len = snd_hda_get_num_raw_conns(codec, nid);
161 result = kmalloc(sizeof(hda_nid_t) * len, GFP_KERNEL); 161 result = kmalloc_array(len, sizeof(hda_nid_t), GFP_KERNEL);
162 if (!result) 162 if (!result)
163 return -ENOMEM; 163 return -ENOMEM;
164 len = snd_hda_get_raw_connections(codec, nid, result, len); 164 len = snd_hda_get_raw_connections(codec, nid, result, len);
@@ -438,7 +438,7 @@ static int read_widget_caps(struct hda_codec *codec, hda_nid_t fg_node)
438 int i; 438 int i;
439 hda_nid_t nid; 439 hda_nid_t nid;
440 440
441 codec->wcaps = kmalloc(codec->core.num_nodes * 4, GFP_KERNEL); 441 codec->wcaps = kmalloc_array(codec->core.num_nodes, 4, GFP_KERNEL);
442 if (!codec->wcaps) 442 if (!codec->wcaps)
443 return -ENOMEM; 443 return -ENOMEM;
444 nid = codec->core.start_nid; 444 nid = codec->core.start_nid;
diff --git a/sound/pci/hda/hda_proc.c b/sound/pci/hda/hda_proc.c
index 033aa84365b9..c6b778b2580c 100644
--- a/sound/pci/hda/hda_proc.c
+++ b/sound/pci/hda/hda_proc.c
@@ -825,8 +825,9 @@ static void print_codec_info(struct snd_info_entry *entry,
825 if (wid_caps & AC_WCAP_CONN_LIST) { 825 if (wid_caps & AC_WCAP_CONN_LIST) {
826 conn_len = snd_hda_get_num_raw_conns(codec, nid); 826 conn_len = snd_hda_get_num_raw_conns(codec, nid);
827 if (conn_len > 0) { 827 if (conn_len > 0) {
828 conn = kmalloc(sizeof(hda_nid_t) * conn_len, 828 conn = kmalloc_array(conn_len,
829 GFP_KERNEL); 829 sizeof(hda_nid_t),
830 GFP_KERNEL);
830 if (!conn) 831 if (!conn)
831 return; 832 return;
832 if (snd_hda_get_raw_connections(codec, nid, conn, 833 if (snd_hda_get_raw_connections(codec, nid, conn,
diff --git a/sound/pci/hda/patch_ca0132.c b/sound/pci/hda/patch_ca0132.c
index 292e2c592c17..04e949aa01ad 100644
--- a/sound/pci/hda/patch_ca0132.c
+++ b/sound/pci/hda/patch_ca0132.c
@@ -7482,7 +7482,9 @@ static int ca0132_prepare_verbs(struct hda_codec *codec)
7482 spec->chip_init_verbs = ca0132_init_verbs0; 7482 spec->chip_init_verbs = ca0132_init_verbs0;
7483 if (spec->quirk == QUIRK_SBZ) 7483 if (spec->quirk == QUIRK_SBZ)
7484 spec->sbz_init_verbs = sbz_init_verbs; 7484 spec->sbz_init_verbs = sbz_init_verbs;
7485 spec->spec_init_verbs = kzalloc(sizeof(struct hda_verb) * NUM_SPEC_VERBS, GFP_KERNEL); 7485 spec->spec_init_verbs = kcalloc(NUM_SPEC_VERBS,
7486 sizeof(struct hda_verb),
7487 GFP_KERNEL);
7486 if (!spec->spec_init_verbs) 7488 if (!spec->spec_init_verbs)
7487 return -ENOMEM; 7489 return -ENOMEM;
7488 7490
diff --git a/sound/pci/maestro3.c b/sound/pci/maestro3.c
index 8f20dec97843..224e942f556d 100644
--- a/sound/pci/maestro3.c
+++ b/sound/pci/maestro3.c
@@ -2657,7 +2657,10 @@ snd_m3_create(struct snd_card *card, struct pci_dev *pci,
2657 chip->irq = pci->irq; 2657 chip->irq = pci->irq;
2658 2658
2659#ifdef CONFIG_PM_SLEEP 2659#ifdef CONFIG_PM_SLEEP
2660 chip->suspend_mem = vmalloc(sizeof(u16) * (REV_B_CODE_MEMORY_LENGTH + REV_B_DATA_MEMORY_LENGTH)); 2660 chip->suspend_mem =
2661 vmalloc(array_size(sizeof(u16),
2662 REV_B_CODE_MEMORY_LENGTH +
2663 REV_B_DATA_MEMORY_LENGTH));
2661 if (chip->suspend_mem == NULL) 2664 if (chip->suspend_mem == NULL)
2662 dev_warn(card->dev, "can't allocate apm buffer\n"); 2665 dev_warn(card->dev, "can't allocate apm buffer\n");
2663#endif 2666#endif
diff --git a/sound/pci/trident/trident_main.c b/sound/pci/trident/trident_main.c
index eabd84d9ffee..49c64fae3466 100644
--- a/sound/pci/trident/trident_main.c
+++ b/sound/pci/trident/trident_main.c
@@ -3362,7 +3362,9 @@ static int snd_trident_tlb_alloc(struct snd_trident *trident)
3362 trident->tlb.entries = (unsigned int*)ALIGN((unsigned long)trident->tlb.buffer.area, SNDRV_TRIDENT_MAX_PAGES * 4); 3362 trident->tlb.entries = (unsigned int*)ALIGN((unsigned long)trident->tlb.buffer.area, SNDRV_TRIDENT_MAX_PAGES * 4);
3363 trident->tlb.entries_dmaaddr = ALIGN(trident->tlb.buffer.addr, SNDRV_TRIDENT_MAX_PAGES * 4); 3363 trident->tlb.entries_dmaaddr = ALIGN(trident->tlb.buffer.addr, SNDRV_TRIDENT_MAX_PAGES * 4);
3364 /* allocate shadow TLB page table (virtual addresses) */ 3364 /* allocate shadow TLB page table (virtual addresses) */
3365 trident->tlb.shadow_entries = vmalloc(SNDRV_TRIDENT_MAX_PAGES*sizeof(unsigned long)); 3365 trident->tlb.shadow_entries =
3366 vmalloc(array_size(SNDRV_TRIDENT_MAX_PAGES,
3367 sizeof(unsigned long)));
3366 if (!trident->tlb.shadow_entries) 3368 if (!trident->tlb.shadow_entries)
3367 return -ENOMEM; 3369 return -ENOMEM;
3368 3370
diff --git a/sound/pci/via82xx.c b/sound/pci/via82xx.c
index 3a1c0b8b4ea2..c488c5afa195 100644
--- a/sound/pci/via82xx.c
+++ b/sound/pci/via82xx.c
@@ -439,7 +439,9 @@ static int build_via_table(struct viadev *dev, struct snd_pcm_substream *substre
439 return -ENOMEM; 439 return -ENOMEM;
440 } 440 }
441 if (! dev->idx_table) { 441 if (! dev->idx_table) {
442 dev->idx_table = kmalloc(sizeof(*dev->idx_table) * VIA_TABLE_SIZE, GFP_KERNEL); 442 dev->idx_table = kmalloc_array(VIA_TABLE_SIZE,
443 sizeof(*dev->idx_table),
444 GFP_KERNEL);
443 if (! dev->idx_table) 445 if (! dev->idx_table)
444 return -ENOMEM; 446 return -ENOMEM;
445 } 447 }
diff --git a/sound/pci/via82xx_modem.c b/sound/pci/via82xx_modem.c
index 8a69221c1b86..b13c8688cc8d 100644
--- a/sound/pci/via82xx_modem.c
+++ b/sound/pci/via82xx_modem.c
@@ -292,7 +292,9 @@ static int build_via_table(struct viadev *dev, struct snd_pcm_substream *substre
292 return -ENOMEM; 292 return -ENOMEM;
293 } 293 }
294 if (! dev->idx_table) { 294 if (! dev->idx_table) {
295 dev->idx_table = kmalloc(sizeof(*dev->idx_table) * VIA_TABLE_SIZE, GFP_KERNEL); 295 dev->idx_table = kmalloc_array(VIA_TABLE_SIZE,
296 sizeof(*dev->idx_table),
297 GFP_KERNEL);
296 if (! dev->idx_table) 298 if (! dev->idx_table)
297 return -ENOMEM; 299 return -ENOMEM;
298 } 300 }
diff --git a/sound/pci/ymfpci/ymfpci_main.c b/sound/pci/ymfpci/ymfpci_main.c
index 8ca2e41e5827..6f81396aadc9 100644
--- a/sound/pci/ymfpci/ymfpci_main.c
+++ b/sound/pci/ymfpci/ymfpci_main.c
@@ -2435,8 +2435,8 @@ int snd_ymfpci_create(struct snd_card *card,
2435 goto free_chip; 2435 goto free_chip;
2436 2436
2437#ifdef CONFIG_PM_SLEEP 2437#ifdef CONFIG_PM_SLEEP
2438 chip->saved_regs = kmalloc(YDSXGR_NUM_SAVED_REGS * sizeof(u32), 2438 chip->saved_regs = kmalloc_array(YDSXGR_NUM_SAVED_REGS, sizeof(u32),
2439 GFP_KERNEL); 2439 GFP_KERNEL);
2440 if (chip->saved_regs == NULL) { 2440 if (chip->saved_regs == NULL) {
2441 err = -ENOMEM; 2441 err = -ENOMEM;
2442 goto free_chip; 2442 goto free_chip;
diff --git a/sound/soc/au1x/dbdma2.c b/sound/soc/au1x/dbdma2.c
index fb650659c3a3..a906560d0cdd 100644
--- a/sound/soc/au1x/dbdma2.c
+++ b/sound/soc/au1x/dbdma2.c
@@ -339,8 +339,8 @@ static int au1xpsc_pcm_drvprobe(struct platform_device *pdev)
339{ 339{
340 struct au1xpsc_audio_dmadata *dmadata; 340 struct au1xpsc_audio_dmadata *dmadata;
341 341
342 dmadata = devm_kzalloc(&pdev->dev, 342 dmadata = devm_kcalloc(&pdev->dev,
343 2 * sizeof(struct au1xpsc_audio_dmadata), 343 2, sizeof(struct au1xpsc_audio_dmadata),
344 GFP_KERNEL); 344 GFP_KERNEL);
345 if (!dmadata) 345 if (!dmadata)
346 return -ENOMEM; 346 return -ENOMEM;
diff --git a/sound/soc/codecs/hdmi-codec.c b/sound/soc/codecs/hdmi-codec.c
index 6fa11888672d..38e4a8515709 100644
--- a/sound/soc/codecs/hdmi-codec.c
+++ b/sound/soc/codecs/hdmi-codec.c
@@ -771,7 +771,7 @@ static int hdmi_codec_probe(struct platform_device *pdev)
771 hcp->hcd = *hcd; 771 hcp->hcd = *hcd;
772 mutex_init(&hcp->current_stream_lock); 772 mutex_init(&hcp->current_stream_lock);
773 773
774 hcp->daidrv = devm_kzalloc(dev, dai_count * sizeof(*hcp->daidrv), 774 hcp->daidrv = devm_kcalloc(dev, dai_count, sizeof(*hcp->daidrv),
775 GFP_KERNEL); 775 GFP_KERNEL);
776 if (!hcp->daidrv) 776 if (!hcp->daidrv)
777 return -ENOMEM; 777 return -ENOMEM;
diff --git a/sound/soc/codecs/rt5645.c b/sound/soc/codecs/rt5645.c
index 712384581ebf..1dc70f452c1b 100644
--- a/sound/soc/codecs/rt5645.c
+++ b/sound/soc/codecs/rt5645.c
@@ -3449,8 +3449,9 @@ static int rt5645_probe(struct snd_soc_component *component)
3449 if (rt5645->pdata.long_name) 3449 if (rt5645->pdata.long_name)
3450 component->card->long_name = rt5645->pdata.long_name; 3450 component->card->long_name = rt5645->pdata.long_name;
3451 3451
3452 rt5645->eq_param = devm_kzalloc(component->dev, 3452 rt5645->eq_param = devm_kcalloc(component->dev,
3453 RT5645_HWEQ_NUM * sizeof(struct rt5645_eq_param_s), GFP_KERNEL); 3453 RT5645_HWEQ_NUM, sizeof(struct rt5645_eq_param_s),
3454 GFP_KERNEL);
3454 3455
3455 return 0; 3456 return 0;
3456} 3457}
diff --git a/sound/soc/codecs/wm8904.c b/sound/soc/codecs/wm8904.c
index f13ef334c0d7..9037a35b931d 100644
--- a/sound/soc/codecs/wm8904.c
+++ b/sound/soc/codecs/wm8904.c
@@ -2023,8 +2023,9 @@ static void wm8904_handle_pdata(struct snd_soc_component *component)
2023 wm8904_get_drc_enum, wm8904_put_drc_enum); 2023 wm8904_get_drc_enum, wm8904_put_drc_enum);
2024 2024
2025 /* We need an array of texts for the enum API */ 2025 /* We need an array of texts for the enum API */
2026 wm8904->drc_texts = kmalloc(sizeof(char *) 2026 wm8904->drc_texts = kmalloc_array(pdata->num_drc_cfgs,
2027 * pdata->num_drc_cfgs, GFP_KERNEL); 2027 sizeof(char *),
2028 GFP_KERNEL);
2028 if (!wm8904->drc_texts) 2029 if (!wm8904->drc_texts)
2029 return; 2030 return;
2030 2031
diff --git a/sound/soc/codecs/wm8958-dsp2.c b/sound/soc/codecs/wm8958-dsp2.c
index 8d495220fa25..108e8bf42a34 100644
--- a/sound/soc/codecs/wm8958-dsp2.c
+++ b/sound/soc/codecs/wm8958-dsp2.c
@@ -932,8 +932,9 @@ void wm8958_dsp2_init(struct snd_soc_component *component)
932 }; 932 };
933 933
934 /* We need an array of texts for the enum API */ 934 /* We need an array of texts for the enum API */
935 wm8994->mbc_texts = kmalloc(sizeof(char *) 935 wm8994->mbc_texts = kmalloc_array(pdata->num_mbc_cfgs,
936 * pdata->num_mbc_cfgs, GFP_KERNEL); 936 sizeof(char *),
937 GFP_KERNEL);
937 if (!wm8994->mbc_texts) 938 if (!wm8994->mbc_texts)
938 return; 939 return;
939 940
@@ -957,8 +958,9 @@ void wm8958_dsp2_init(struct snd_soc_component *component)
957 }; 958 };
958 959
959 /* We need an array of texts for the enum API */ 960 /* We need an array of texts for the enum API */
960 wm8994->vss_texts = kmalloc(sizeof(char *) 961 wm8994->vss_texts = kmalloc_array(pdata->num_vss_cfgs,
961 * pdata->num_vss_cfgs, GFP_KERNEL); 962 sizeof(char *),
963 GFP_KERNEL);
962 if (!wm8994->vss_texts) 964 if (!wm8994->vss_texts)
963 return; 965 return;
964 966
@@ -983,8 +985,9 @@ void wm8958_dsp2_init(struct snd_soc_component *component)
983 }; 985 };
984 986
985 /* We need an array of texts for the enum API */ 987 /* We need an array of texts for the enum API */
986 wm8994->vss_hpf_texts = kmalloc(sizeof(char *) 988 wm8994->vss_hpf_texts = kmalloc_array(pdata->num_vss_hpf_cfgs,
987 * pdata->num_vss_hpf_cfgs, GFP_KERNEL); 989 sizeof(char *),
990 GFP_KERNEL);
988 if (!wm8994->vss_hpf_texts) 991 if (!wm8994->vss_hpf_texts)
989 return; 992 return;
990 993
@@ -1010,8 +1013,9 @@ void wm8958_dsp2_init(struct snd_soc_component *component)
1010 }; 1013 };
1011 1014
1012 /* We need an array of texts for the enum API */ 1015 /* We need an array of texts for the enum API */
1013 wm8994->enh_eq_texts = kmalloc(sizeof(char *) 1016 wm8994->enh_eq_texts = kmalloc_array(pdata->num_enh_eq_cfgs,
1014 * pdata->num_enh_eq_cfgs, GFP_KERNEL); 1017 sizeof(char *),
1018 GFP_KERNEL);
1015 if (!wm8994->enh_eq_texts) 1019 if (!wm8994->enh_eq_texts)
1016 return; 1020 return;
1017 1021
diff --git a/sound/soc/codecs/wm8994.c b/sound/soc/codecs/wm8994.c
index 6e9e32a07259..7fdfdf3f6e67 100644
--- a/sound/soc/codecs/wm8994.c
+++ b/sound/soc/codecs/wm8994.c
@@ -3298,8 +3298,8 @@ static void wm8994_handle_pdata(struct wm8994_priv *wm8994)
3298 }; 3298 };
3299 3299
3300 /* We need an array of texts for the enum API */ 3300 /* We need an array of texts for the enum API */
3301 wm8994->drc_texts = devm_kzalloc(wm8994->hubs.component->dev, 3301 wm8994->drc_texts = devm_kcalloc(wm8994->hubs.component->dev,
3302 sizeof(char *) * pdata->num_drc_cfgs, GFP_KERNEL); 3302 pdata->num_drc_cfgs, sizeof(char *), GFP_KERNEL);
3303 if (!wm8994->drc_texts) 3303 if (!wm8994->drc_texts)
3304 return; 3304 return;
3305 3305
diff --git a/sound/soc/codecs/wm_adsp.c b/sound/soc/codecs/wm_adsp.c
index 2175dccdf388..2fcdd84021a5 100644
--- a/sound/soc/codecs/wm_adsp.c
+++ b/sound/soc/codecs/wm_adsp.c
@@ -1899,7 +1899,7 @@ static void *wm_adsp_read_algs(struct wm_adsp *dsp, size_t n_algs,
1899 adsp_warn(dsp, "Algorithm list end %x 0x%x != 0xbedead\n", 1899 adsp_warn(dsp, "Algorithm list end %x 0x%x != 0xbedead\n",
1900 pos + len, be32_to_cpu(val)); 1900 pos + len, be32_to_cpu(val));
1901 1901
1902 alg = kzalloc(len * 2, GFP_KERNEL | GFP_DMA); 1902 alg = kcalloc(len, 2, GFP_KERNEL | GFP_DMA);
1903 if (!alg) 1903 if (!alg)
1904 return ERR_PTR(-ENOMEM); 1904 return ERR_PTR(-ENOMEM);
1905 1905
diff --git a/sound/soc/davinci/davinci-mcasp.c b/sound/soc/davinci/davinci-mcasp.c
index 1f96c9dbe9c4..47c0c821d325 100644
--- a/sound/soc/davinci/davinci-mcasp.c
+++ b/sound/soc/davinci/davinci-mcasp.c
@@ -1868,8 +1868,8 @@ static int davinci_mcasp_probe(struct platform_device *pdev)
1868 1868
1869 mcasp->num_serializer = pdata->num_serializer; 1869 mcasp->num_serializer = pdata->num_serializer;
1870#ifdef CONFIG_PM_SLEEP 1870#ifdef CONFIG_PM_SLEEP
1871 mcasp->context.xrsr_regs = devm_kzalloc(&pdev->dev, 1871 mcasp->context.xrsr_regs = devm_kcalloc(&pdev->dev,
1872 sizeof(u32) * mcasp->num_serializer, 1872 mcasp->num_serializer, sizeof(u32),
1873 GFP_KERNEL); 1873 GFP_KERNEL);
1874 if (!mcasp->context.xrsr_regs) { 1874 if (!mcasp->context.xrsr_regs) {
1875 ret = -ENOMEM; 1875 ret = -ENOMEM;
@@ -2004,13 +2004,15 @@ static int davinci_mcasp_probe(struct platform_device *pdev)
2004 * bytes. 2004 * bytes.
2005 */ 2005 */
2006 mcasp->chconstr[SNDRV_PCM_STREAM_PLAYBACK].list = 2006 mcasp->chconstr[SNDRV_PCM_STREAM_PLAYBACK].list =
2007 devm_kzalloc(mcasp->dev, sizeof(unsigned int) * 2007 devm_kcalloc(mcasp->dev,
2008 (32 + mcasp->num_serializer - 1), 2008 32 + mcasp->num_serializer - 1,
2009 sizeof(unsigned int),
2009 GFP_KERNEL); 2010 GFP_KERNEL);
2010 2011
2011 mcasp->chconstr[SNDRV_PCM_STREAM_CAPTURE].list = 2012 mcasp->chconstr[SNDRV_PCM_STREAM_CAPTURE].list =
2012 devm_kzalloc(mcasp->dev, sizeof(unsigned int) * 2013 devm_kcalloc(mcasp->dev,
2013 (32 + mcasp->num_serializer - 1), 2014 32 + mcasp->num_serializer - 1,
2015 sizeof(unsigned int),
2014 GFP_KERNEL); 2016 GFP_KERNEL);
2015 2017
2016 if (!mcasp->chconstr[SNDRV_PCM_STREAM_PLAYBACK].list || 2018 if (!mcasp->chconstr[SNDRV_PCM_STREAM_PLAYBACK].list ||
diff --git a/sound/soc/generic/audio-graph-card.c b/sound/soc/generic/audio-graph-card.c
index 1b6164249341..d93bacacbd5b 100644
--- a/sound/soc/generic/audio-graph-card.c
+++ b/sound/soc/generic/audio-graph-card.c
@@ -296,8 +296,8 @@ static int asoc_graph_card_probe(struct platform_device *pdev)
296 if (num == 0) 296 if (num == 0)
297 return -EINVAL; 297 return -EINVAL;
298 298
299 dai_props = devm_kzalloc(dev, sizeof(*dai_props) * num, GFP_KERNEL); 299 dai_props = devm_kcalloc(dev, num, sizeof(*dai_props), GFP_KERNEL);
300 dai_link = devm_kzalloc(dev, sizeof(*dai_link) * num, GFP_KERNEL); 300 dai_link = devm_kcalloc(dev, num, sizeof(*dai_link), GFP_KERNEL);
301 if (!dai_props || !dai_link) 301 if (!dai_props || !dai_link)
302 return -ENOMEM; 302 return -ENOMEM;
303 303
diff --git a/sound/soc/generic/audio-graph-scu-card.c b/sound/soc/generic/audio-graph-scu-card.c
index a967aa143d51..095ef6426d42 100644
--- a/sound/soc/generic/audio-graph-scu-card.c
+++ b/sound/soc/generic/audio-graph-scu-card.c
@@ -348,8 +348,8 @@ static int asoc_graph_card_probe(struct platform_device *pdev)
348 if (num == 0) 348 if (num == 0)
349 return -EINVAL; 349 return -EINVAL;
350 350
351 dai_props = devm_kzalloc(dev, sizeof(*dai_props) * num, GFP_KERNEL); 351 dai_props = devm_kcalloc(dev, num, sizeof(*dai_props), GFP_KERNEL);
352 dai_link = devm_kzalloc(dev, sizeof(*dai_link) * num, GFP_KERNEL); 352 dai_link = devm_kcalloc(dev, num, sizeof(*dai_link), GFP_KERNEL);
353 if (!dai_props || !dai_link) 353 if (!dai_props || !dai_link)
354 return -ENOMEM; 354 return -ENOMEM;
355 355
diff --git a/sound/soc/generic/simple-card.c b/sound/soc/generic/simple-card.c
index 4a516c428b3d..8b374af86a6e 100644
--- a/sound/soc/generic/simple-card.c
+++ b/sound/soc/generic/simple-card.c
@@ -340,8 +340,8 @@ static int asoc_simple_card_parse_aux_devs(struct device_node *node,
340 if (n <= 0) 340 if (n <= 0)
341 return -EINVAL; 341 return -EINVAL;
342 342
343 card->aux_dev = devm_kzalloc(dev, 343 card->aux_dev = devm_kcalloc(dev,
344 n * sizeof(*card->aux_dev), GFP_KERNEL); 344 n, sizeof(*card->aux_dev), GFP_KERNEL);
345 if (!card->aux_dev) 345 if (!card->aux_dev)
346 return -ENOMEM; 346 return -ENOMEM;
347 347
@@ -435,8 +435,8 @@ static int asoc_simple_card_probe(struct platform_device *pdev)
435 if (!priv) 435 if (!priv)
436 return -ENOMEM; 436 return -ENOMEM;
437 437
438 dai_props = devm_kzalloc(dev, sizeof(*dai_props) * num, GFP_KERNEL); 438 dai_props = devm_kcalloc(dev, num, sizeof(*dai_props), GFP_KERNEL);
439 dai_link = devm_kzalloc(dev, sizeof(*dai_link) * num, GFP_KERNEL); 439 dai_link = devm_kcalloc(dev, num, sizeof(*dai_link), GFP_KERNEL);
440 if (!dai_props || !dai_link) 440 if (!dai_props || !dai_link)
441 return -ENOMEM; 441 return -ENOMEM;
442 442
diff --git a/sound/soc/generic/simple-scu-card.c b/sound/soc/generic/simple-scu-card.c
index 48606c63562a..487716559deb 100644
--- a/sound/soc/generic/simple-scu-card.c
+++ b/sound/soc/generic/simple-scu-card.c
@@ -246,8 +246,8 @@ static int asoc_simple_card_probe(struct platform_device *pdev)
246 246
247 num = of_get_child_count(np); 247 num = of_get_child_count(np);
248 248
249 dai_props = devm_kzalloc(dev, sizeof(*dai_props) * num, GFP_KERNEL); 249 dai_props = devm_kcalloc(dev, num, sizeof(*dai_props), GFP_KERNEL);
250 dai_link = devm_kzalloc(dev, sizeof(*dai_link) * num, GFP_KERNEL); 250 dai_link = devm_kcalloc(dev, num, sizeof(*dai_link), GFP_KERNEL);
251 if (!dai_props || !dai_link) 251 if (!dai_props || !dai_link)
252 return -ENOMEM; 252 return -ENOMEM;
253 253
diff --git a/sound/soc/img/img-i2s-in.c b/sound/soc/img/img-i2s-in.c
index d7fbb0a0a28b..388cefd7340a 100644
--- a/sound/soc/img/img-i2s-in.c
+++ b/sound/soc/img/img-i2s-in.c
@@ -509,8 +509,8 @@ static int img_i2s_in_probe(struct platform_device *pdev)
509 509
510 pm_runtime_put(&pdev->dev); 510 pm_runtime_put(&pdev->dev);
511 511
512 i2s->suspend_ch_ctl = devm_kzalloc(dev, 512 i2s->suspend_ch_ctl = devm_kcalloc(dev,
513 sizeof(*i2s->suspend_ch_ctl) * i2s->max_i2s_chan, GFP_KERNEL); 513 i2s->max_i2s_chan, sizeof(*i2s->suspend_ch_ctl), GFP_KERNEL);
514 if (!i2s->suspend_ch_ctl) { 514 if (!i2s->suspend_ch_ctl) {
515 ret = -ENOMEM; 515 ret = -ENOMEM;
516 goto err_suspend; 516 goto err_suspend;
diff --git a/sound/soc/img/img-i2s-out.c b/sound/soc/img/img-i2s-out.c
index 30a95bcef2db..fc2d1dac6333 100644
--- a/sound/soc/img/img-i2s-out.c
+++ b/sound/soc/img/img-i2s-out.c
@@ -479,8 +479,8 @@ static int img_i2s_out_probe(struct platform_device *pdev)
479 return PTR_ERR(i2s->clk_ref); 479 return PTR_ERR(i2s->clk_ref);
480 } 480 }
481 481
482 i2s->suspend_ch_ctl = devm_kzalloc(dev, 482 i2s->suspend_ch_ctl = devm_kcalloc(dev,
483 sizeof(*i2s->suspend_ch_ctl) * i2s->max_i2s_chan, GFP_KERNEL); 483 i2s->max_i2s_chan, sizeof(*i2s->suspend_ch_ctl), GFP_KERNEL);
484 if (!i2s->suspend_ch_ctl) 484 if (!i2s->suspend_ch_ctl)
485 return -ENOMEM; 485 return -ENOMEM;
486 486
diff --git a/sound/soc/intel/common/sst-ipc.c b/sound/soc/intel/common/sst-ipc.c
index 62f3a8e0ec87..dcff13802c00 100644
--- a/sound/soc/intel/common/sst-ipc.c
+++ b/sound/soc/intel/common/sst-ipc.c
@@ -121,8 +121,8 @@ static int msg_empty_list_init(struct sst_generic_ipc *ipc)
121{ 121{
122 int i; 122 int i;
123 123
124 ipc->msg = kzalloc(sizeof(struct ipc_message) * 124 ipc->msg = kcalloc(IPC_EMPTY_LIST_SIZE, sizeof(struct ipc_message),
125 IPC_EMPTY_LIST_SIZE, GFP_KERNEL); 125 GFP_KERNEL);
126 if (ipc->msg == NULL) 126 if (ipc->msg == NULL)
127 return -ENOMEM; 127 return -ENOMEM;
128 128
diff --git a/sound/soc/intel/skylake/skl-topology.c b/sound/soc/intel/skylake/skl-topology.c
index 2c5129782959..fcdc716754b6 100644
--- a/sound/soc/intel/skylake/skl-topology.c
+++ b/sound/soc/intel/skylake/skl-topology.c
@@ -2428,8 +2428,10 @@ static int skl_tplg_get_token(struct device *dev,
2428 2428
2429 case SKL_TKN_U8_DYN_IN_PIN: 2429 case SKL_TKN_U8_DYN_IN_PIN:
2430 if (!mconfig->m_in_pin) 2430 if (!mconfig->m_in_pin)
2431 mconfig->m_in_pin = devm_kzalloc(dev, MAX_IN_QUEUE * 2431 mconfig->m_in_pin =
2432 sizeof(*mconfig->m_in_pin), GFP_KERNEL); 2432 devm_kcalloc(dev, MAX_IN_QUEUE,
2433 sizeof(*mconfig->m_in_pin),
2434 GFP_KERNEL);
2433 if (!mconfig->m_in_pin) 2435 if (!mconfig->m_in_pin)
2434 return -ENOMEM; 2436 return -ENOMEM;
2435 2437
@@ -2439,8 +2441,10 @@ static int skl_tplg_get_token(struct device *dev,
2439 2441
2440 case SKL_TKN_U8_DYN_OUT_PIN: 2442 case SKL_TKN_U8_DYN_OUT_PIN:
2441 if (!mconfig->m_out_pin) 2443 if (!mconfig->m_out_pin)
2442 mconfig->m_out_pin = devm_kzalloc(dev, MAX_IN_QUEUE * 2444 mconfig->m_out_pin =
2443 sizeof(*mconfig->m_in_pin), GFP_KERNEL); 2445 devm_kcalloc(dev, MAX_IN_QUEUE,
2446 sizeof(*mconfig->m_in_pin),
2447 GFP_KERNEL);
2444 if (!mconfig->m_out_pin) 2448 if (!mconfig->m_out_pin)
2445 return -ENOMEM; 2449 return -ENOMEM;
2446 2450
@@ -2852,14 +2856,14 @@ static int skl_tplg_get_pvt_data_v4(struct snd_soc_tplg_dapm_widget *tplg_w,
2852 mconfig->time_slot = dfw->time_slot; 2856 mconfig->time_slot = dfw->time_slot;
2853 mconfig->formats_config.caps_size = dfw->caps.caps_size; 2857 mconfig->formats_config.caps_size = dfw->caps.caps_size;
2854 2858
2855 mconfig->m_in_pin = devm_kzalloc(dev, 2859 mconfig->m_in_pin = devm_kcalloc(dev,
2856 MAX_IN_QUEUE * sizeof(*mconfig->m_in_pin), 2860 MAX_IN_QUEUE, sizeof(*mconfig->m_in_pin),
2857 GFP_KERNEL); 2861 GFP_KERNEL);
2858 if (!mconfig->m_in_pin) 2862 if (!mconfig->m_in_pin)
2859 return -ENOMEM; 2863 return -ENOMEM;
2860 2864
2861 mconfig->m_out_pin = devm_kzalloc(dev, 2865 mconfig->m_out_pin = devm_kcalloc(dev,
2862 MAX_OUT_QUEUE * sizeof(*mconfig->m_out_pin), 2866 MAX_OUT_QUEUE, sizeof(*mconfig->m_out_pin),
2863 GFP_KERNEL); 2867 GFP_KERNEL);
2864 if (!mconfig->m_out_pin) 2868 if (!mconfig->m_out_pin)
2865 return -ENOMEM; 2869 return -ENOMEM;
diff --git a/sound/soc/mediatek/mt2701/mt2701-afe-pcm.c b/sound/soc/mediatek/mt2701/mt2701-afe-pcm.c
index 828d11c30c6a..968fba4d7533 100644
--- a/sound/soc/mediatek/mt2701/mt2701-afe-pcm.c
+++ b/sound/soc/mediatek/mt2701/mt2701-afe-pcm.c
@@ -1347,7 +1347,8 @@ static int mt2701_afe_pcm_dev_probe(struct platform_device *pdev)
1347 afe->dev = &pdev->dev; 1347 afe->dev = &pdev->dev;
1348 dev = afe->dev; 1348 dev = afe->dev;
1349 1349
1350 afe_priv->i2s_path = devm_kzalloc(dev, afe_priv->soc->i2s_num * 1350 afe_priv->i2s_path = devm_kcalloc(dev,
1351 afe_priv->soc->i2s_num,
1351 sizeof(struct mt2701_i2s_path), 1352 sizeof(struct mt2701_i2s_path),
1352 GFP_KERNEL); 1353 GFP_KERNEL);
1353 if (!afe_priv->i2s_path) 1354 if (!afe_priv->i2s_path)
diff --git a/sound/soc/pxa/mmp-sspa.c b/sound/soc/pxa/mmp-sspa.c
index 7c998ea4ebee..12d4513ebe8a 100644
--- a/sound/soc/pxa/mmp-sspa.c
+++ b/sound/soc/pxa/mmp-sspa.c
@@ -425,8 +425,8 @@ static int asoc_mmp_sspa_probe(struct platform_device *pdev)
425 if (priv->sspa == NULL) 425 if (priv->sspa == NULL)
426 return -ENOMEM; 426 return -ENOMEM;
427 427
428 priv->dma_params = devm_kzalloc(&pdev->dev, 428 priv->dma_params = devm_kcalloc(&pdev->dev,
429 2 * sizeof(struct snd_dmaengine_dai_dma_data), 429 2, sizeof(struct snd_dmaengine_dai_dma_data),
430 GFP_KERNEL); 430 GFP_KERNEL);
431 if (priv->dma_params == NULL) 431 if (priv->dma_params == NULL)
432 return -ENOMEM; 432 return -ENOMEM;
diff --git a/sound/soc/rockchip/rk3399_gru_sound.c b/sound/soc/rockchip/rk3399_gru_sound.c
index f184168f9a41..f2a51ae2b674 100644
--- a/sound/soc/rockchip/rk3399_gru_sound.c
+++ b/sound/soc/rockchip/rk3399_gru_sound.c
@@ -462,7 +462,7 @@ static int rockchip_sound_of_parse_dais(struct device *dev,
462 num_routes = 0; 462 num_routes = 0;
463 for (i = 0; i < ARRAY_SIZE(rockchip_routes); i++) 463 for (i = 0; i < ARRAY_SIZE(rockchip_routes); i++)
464 num_routes += rockchip_routes[i].num_routes; 464 num_routes += rockchip_routes[i].num_routes;
465 routes = devm_kzalloc(dev, num_routes * sizeof(*routes), 465 routes = devm_kcalloc(dev, num_routes, sizeof(*routes),
466 GFP_KERNEL); 466 GFP_KERNEL);
467 if (!routes) 467 if (!routes)
468 return -ENOMEM; 468 return -ENOMEM;
diff --git a/sound/soc/sh/rcar/cmd.c b/sound/soc/sh/rcar/cmd.c
index 4221937ae79b..5900fb535a2b 100644
--- a/sound/soc/sh/rcar/cmd.c
+++ b/sound/soc/sh/rcar/cmd.c
@@ -155,7 +155,7 @@ int rsnd_cmd_probe(struct rsnd_priv *priv)
155 if (!nr) 155 if (!nr)
156 return 0; 156 return 0;
157 157
158 cmd = devm_kzalloc(dev, sizeof(*cmd) * nr, GFP_KERNEL); 158 cmd = devm_kcalloc(dev, nr, sizeof(*cmd), GFP_KERNEL);
159 if (!cmd) 159 if (!cmd)
160 return -ENOMEM; 160 return -ENOMEM;
161 161
diff --git a/sound/soc/sh/rcar/core.c b/sound/soc/sh/rcar/core.c
index af04d41a4274..f237002180c0 100644
--- a/sound/soc/sh/rcar/core.c
+++ b/sound/soc/sh/rcar/core.c
@@ -1110,8 +1110,8 @@ static int rsnd_dai_probe(struct rsnd_priv *priv)
1110 if (!nr) 1110 if (!nr)
1111 return -EINVAL; 1111 return -EINVAL;
1112 1112
1113 rdrv = devm_kzalloc(dev, sizeof(*rdrv) * nr, GFP_KERNEL); 1113 rdrv = devm_kcalloc(dev, nr, sizeof(*rdrv), GFP_KERNEL);
1114 rdai = devm_kzalloc(dev, sizeof(*rdai) * nr, GFP_KERNEL); 1114 rdai = devm_kcalloc(dev, nr, sizeof(*rdai), GFP_KERNEL);
1115 if (!rdrv || !rdai) 1115 if (!rdrv || !rdai)
1116 return -ENOMEM; 1116 return -ENOMEM;
1117 1117
diff --git a/sound/soc/sh/rcar/ctu.c b/sound/soc/sh/rcar/ctu.c
index d201d551866d..83be7d3ae0a8 100644
--- a/sound/soc/sh/rcar/ctu.c
+++ b/sound/soc/sh/rcar/ctu.c
@@ -378,7 +378,7 @@ int rsnd_ctu_probe(struct rsnd_priv *priv)
378 goto rsnd_ctu_probe_done; 378 goto rsnd_ctu_probe_done;
379 } 379 }
380 380
381 ctu = devm_kzalloc(dev, sizeof(*ctu) * nr, GFP_KERNEL); 381 ctu = devm_kcalloc(dev, nr, sizeof(*ctu), GFP_KERNEL);
382 if (!ctu) { 382 if (!ctu) {
383 ret = -ENOMEM; 383 ret = -ENOMEM;
384 goto rsnd_ctu_probe_done; 384 goto rsnd_ctu_probe_done;
diff --git a/sound/soc/sh/rcar/dvc.c b/sound/soc/sh/rcar/dvc.c
index dbe54f024d68..ca1780e0b830 100644
--- a/sound/soc/sh/rcar/dvc.c
+++ b/sound/soc/sh/rcar/dvc.c
@@ -344,7 +344,7 @@ int rsnd_dvc_probe(struct rsnd_priv *priv)
344 goto rsnd_dvc_probe_done; 344 goto rsnd_dvc_probe_done;
345 } 345 }
346 346
347 dvc = devm_kzalloc(dev, sizeof(*dvc) * nr, GFP_KERNEL); 347 dvc = devm_kcalloc(dev, nr, sizeof(*dvc), GFP_KERNEL);
348 if (!dvc) { 348 if (!dvc) {
349 ret = -ENOMEM; 349 ret = -ENOMEM;
350 goto rsnd_dvc_probe_done; 350 goto rsnd_dvc_probe_done;
diff --git a/sound/soc/sh/rcar/mix.c b/sound/soc/sh/rcar/mix.c
index 7998380766f6..1881b2de9126 100644
--- a/sound/soc/sh/rcar/mix.c
+++ b/sound/soc/sh/rcar/mix.c
@@ -294,7 +294,7 @@ int rsnd_mix_probe(struct rsnd_priv *priv)
294 goto rsnd_mix_probe_done; 294 goto rsnd_mix_probe_done;
295 } 295 }
296 296
297 mix = devm_kzalloc(dev, sizeof(*mix) * nr, GFP_KERNEL); 297 mix = devm_kcalloc(dev, nr, sizeof(*mix), GFP_KERNEL);
298 if (!mix) { 298 if (!mix) {
299 ret = -ENOMEM; 299 ret = -ENOMEM;
300 goto rsnd_mix_probe_done; 300 goto rsnd_mix_probe_done;
diff --git a/sound/soc/sh/rcar/src.c b/sound/soc/sh/rcar/src.c
index a727e71587b6..6c72d1a81cf5 100644
--- a/sound/soc/sh/rcar/src.c
+++ b/sound/soc/sh/rcar/src.c
@@ -575,7 +575,7 @@ int rsnd_src_probe(struct rsnd_priv *priv)
575 goto rsnd_src_probe_done; 575 goto rsnd_src_probe_done;
576 } 576 }
577 577
578 src = devm_kzalloc(dev, sizeof(*src) * nr, GFP_KERNEL); 578 src = devm_kcalloc(dev, nr, sizeof(*src), GFP_KERNEL);
579 if (!src) { 579 if (!src) {
580 ret = -ENOMEM; 580 ret = -ENOMEM;
581 goto rsnd_src_probe_done; 581 goto rsnd_src_probe_done;
diff --git a/sound/soc/sh/rcar/ssi.c b/sound/soc/sh/rcar/ssi.c
index 9538f76f8e20..6e1166ec24a0 100644
--- a/sound/soc/sh/rcar/ssi.c
+++ b/sound/soc/sh/rcar/ssi.c
@@ -1116,7 +1116,7 @@ int rsnd_ssi_probe(struct rsnd_priv *priv)
1116 goto rsnd_ssi_probe_done; 1116 goto rsnd_ssi_probe_done;
1117 } 1117 }
1118 1118
1119 ssi = devm_kzalloc(dev, sizeof(*ssi) * nr, GFP_KERNEL); 1119 ssi = devm_kcalloc(dev, nr, sizeof(*ssi), GFP_KERNEL);
1120 if (!ssi) { 1120 if (!ssi) {
1121 ret = -ENOMEM; 1121 ret = -ENOMEM;
1122 goto rsnd_ssi_probe_done; 1122 goto rsnd_ssi_probe_done;
diff --git a/sound/soc/sh/rcar/ssiu.c b/sound/soc/sh/rcar/ssiu.c
index 6ff8a36c2c82..47bdba9fc582 100644
--- a/sound/soc/sh/rcar/ssiu.c
+++ b/sound/soc/sh/rcar/ssiu.c
@@ -258,7 +258,7 @@ int rsnd_ssiu_probe(struct rsnd_priv *priv)
258 258
259 /* same number to SSI */ 259 /* same number to SSI */
260 nr = priv->ssi_nr; 260 nr = priv->ssi_nr;
261 ssiu = devm_kzalloc(dev, sizeof(*ssiu) * nr, GFP_KERNEL); 261 ssiu = devm_kcalloc(dev, nr, sizeof(*ssiu), GFP_KERNEL);
262 if (!ssiu) 262 if (!ssiu)
263 return -ENOMEM; 263 return -ENOMEM;
264 264
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 3d56f1fe5914..4663de3cf495 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -373,8 +373,8 @@ static struct snd_soc_pcm_runtime *soc_new_pcm_runtime(
373 if (!rtd->dai_link->ops) 373 if (!rtd->dai_link->ops)
374 rtd->dai_link->ops = &null_snd_soc_ops; 374 rtd->dai_link->ops = &null_snd_soc_ops;
375 375
376 rtd->codec_dais = kzalloc(sizeof(struct snd_soc_dai *) * 376 rtd->codec_dais = kcalloc(dai_link->num_codecs,
377 dai_link->num_codecs, 377 sizeof(struct snd_soc_dai *),
378 GFP_KERNEL); 378 GFP_KERNEL);
379 if (!rtd->codec_dais) { 379 if (!rtd->codec_dais) {
380 kfree(rtd); 380 kfree(rtd);
@@ -3354,7 +3354,7 @@ int snd_soc_of_parse_audio_routing(struct snd_soc_card *card,
3354 return -EINVAL; 3354 return -EINVAL;
3355 } 3355 }
3356 3356
3357 routes = devm_kzalloc(card->dev, num_routes * sizeof(*routes), 3357 routes = devm_kcalloc(card->dev, num_routes, sizeof(*routes),
3358 GFP_KERNEL); 3358 GFP_KERNEL);
3359 if (!routes) { 3359 if (!routes) {
3360 dev_err(card->dev, 3360 dev_err(card->dev,
@@ -3678,8 +3678,8 @@ int snd_soc_of_get_dai_link_codecs(struct device *dev,
3678 dev_err(dev, "Bad phandle in 'sound-dai'\n"); 3678 dev_err(dev, "Bad phandle in 'sound-dai'\n");
3679 return num_codecs; 3679 return num_codecs;
3680 } 3680 }
3681 component = devm_kzalloc(dev, 3681 component = devm_kcalloc(dev,
3682 sizeof *component * num_codecs, 3682 num_codecs, sizeof(*component),
3683 GFP_KERNEL); 3683 GFP_KERNEL);
3684 if (!component) 3684 if (!component)
3685 return -ENOMEM; 3685 return -ENOMEM;
diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c
index 255cad43a972..229c12349803 100644
--- a/sound/soc/soc-dapm.c
+++ b/sound/soc/soc-dapm.c
@@ -3055,7 +3055,7 @@ int snd_soc_dapm_new_widgets(struct snd_soc_card *card)
3055 continue; 3055 continue;
3056 3056
3057 if (w->num_kcontrols) { 3057 if (w->num_kcontrols) {
3058 w->kcontrols = kzalloc(w->num_kcontrols * 3058 w->kcontrols = kcalloc(w->num_kcontrols,
3059 sizeof(struct snd_kcontrol *), 3059 sizeof(struct snd_kcontrol *),
3060 GFP_KERNEL); 3060 GFP_KERNEL);
3061 if (!w->kcontrols) { 3061 if (!w->kcontrols) {
diff --git a/sound/soc/soc-topology.c b/sound/soc/soc-topology.c
index 3fd5d9c867b9..53f121a50c97 100644
--- a/sound/soc/soc-topology.c
+++ b/sound/soc/soc-topology.c
@@ -885,7 +885,7 @@ static int soc_tplg_denum_create_texts(struct soc_enum *se,
885 int i, ret; 885 int i, ret;
886 886
887 se->dobj.control.dtexts = 887 se->dobj.control.dtexts =
888 kzalloc(sizeof(char *) * ec->items, GFP_KERNEL); 888 kcalloc(ec->items, sizeof(char *), GFP_KERNEL);
889 if (se->dobj.control.dtexts == NULL) 889 if (se->dobj.control.dtexts == NULL)
890 return -ENOMEM; 890 return -ENOMEM;
891 891
diff --git a/sound/soc/uniphier/aio-cpu.c b/sound/soc/uniphier/aio-cpu.c
index 80daec17be25..2d9b7dde2ffa 100644
--- a/sound/soc/uniphier/aio-cpu.c
+++ b/sound/soc/uniphier/aio-cpu.c
@@ -624,15 +624,17 @@ int uniphier_aio_probe(struct platform_device *pdev)
624 return PTR_ERR(chip->rst); 624 return PTR_ERR(chip->rst);
625 625
626 chip->num_aios = chip->chip_spec->num_dais; 626 chip->num_aios = chip->chip_spec->num_dais;
627 chip->aios = devm_kzalloc(dev, 627 chip->aios = devm_kcalloc(dev,
628 sizeof(struct uniphier_aio) * chip->num_aios, 628 chip->num_aios, sizeof(struct uniphier_aio),
629 GFP_KERNEL); 629 GFP_KERNEL);
630 if (!chip->aios) 630 if (!chip->aios)
631 return -ENOMEM; 631 return -ENOMEM;
632 632
633 chip->num_plls = chip->chip_spec->num_plls; 633 chip->num_plls = chip->chip_spec->num_plls;
634 chip->plls = devm_kzalloc(dev, sizeof(struct uniphier_aio_pll) * 634 chip->plls = devm_kcalloc(dev,
635 chip->num_plls, GFP_KERNEL); 635 chip->num_plls,
636 sizeof(struct uniphier_aio_pll),
637 GFP_KERNEL);
636 if (!chip->plls) 638 if (!chip->plls)
637 return -ENOMEM; 639 return -ENOMEM;
638 memcpy(chip->plls, chip->chip_spec->plls, 640 memcpy(chip->plls, chip->chip_spec->plls,
diff --git a/sound/usb/6fire/pcm.c b/sound/usb/6fire/pcm.c
index 224a6a5d1c0e..2dd2518a71d3 100644
--- a/sound/usb/6fire/pcm.c
+++ b/sound/usb/6fire/pcm.c
@@ -591,12 +591,14 @@ static int usb6fire_pcm_buffers_init(struct pcm_runtime *rt)
591 int i; 591 int i;
592 592
593 for (i = 0; i < PCM_N_URBS; i++) { 593 for (i = 0; i < PCM_N_URBS; i++) {
594 rt->out_urbs[i].buffer = kzalloc(PCM_N_PACKETS_PER_URB 594 rt->out_urbs[i].buffer = kcalloc(PCM_MAX_PACKET_SIZE,
595 * PCM_MAX_PACKET_SIZE, GFP_KERNEL); 595 PCM_N_PACKETS_PER_URB,
596 GFP_KERNEL);
596 if (!rt->out_urbs[i].buffer) 597 if (!rt->out_urbs[i].buffer)
597 return -ENOMEM; 598 return -ENOMEM;
598 rt->in_urbs[i].buffer = kzalloc(PCM_N_PACKETS_PER_URB 599 rt->in_urbs[i].buffer = kcalloc(PCM_MAX_PACKET_SIZE,
599 * PCM_MAX_PACKET_SIZE, GFP_KERNEL); 600 PCM_N_PACKETS_PER_URB,
601 GFP_KERNEL);
600 if (!rt->in_urbs[i].buffer) 602 if (!rt->in_urbs[i].buffer)
601 return -ENOMEM; 603 return -ENOMEM;
602 } 604 }
diff --git a/sound/usb/caiaq/audio.c b/sound/usb/caiaq/audio.c
index fb1c1eac0b5e..f35d29f49ffe 100644
--- a/sound/usb/caiaq/audio.c
+++ b/sound/usb/caiaq/audio.c
@@ -728,7 +728,7 @@ static struct urb **alloc_urbs(struct snd_usb_caiaqdev *cdev, int dir, int *ret)
728 usb_sndisocpipe(usb_dev, ENDPOINT_PLAYBACK) : 728 usb_sndisocpipe(usb_dev, ENDPOINT_PLAYBACK) :
729 usb_rcvisocpipe(usb_dev, ENDPOINT_CAPTURE); 729 usb_rcvisocpipe(usb_dev, ENDPOINT_CAPTURE);
730 730
731 urbs = kmalloc(N_URBS * sizeof(*urbs), GFP_KERNEL); 731 urbs = kmalloc_array(N_URBS, sizeof(*urbs), GFP_KERNEL);
732 if (!urbs) { 732 if (!urbs) {
733 *ret = -ENOMEM; 733 *ret = -ENOMEM;
734 return NULL; 734 return NULL;
@@ -742,7 +742,8 @@ static struct urb **alloc_urbs(struct snd_usb_caiaqdev *cdev, int dir, int *ret)
742 } 742 }
743 743
744 urbs[i]->transfer_buffer = 744 urbs[i]->transfer_buffer =
745 kmalloc(FRAMES_PER_URB * BYTES_PER_FRAME, GFP_KERNEL); 745 kmalloc_array(BYTES_PER_FRAME, FRAMES_PER_URB,
746 GFP_KERNEL);
746 if (!urbs[i]->transfer_buffer) { 747 if (!urbs[i]->transfer_buffer) {
747 *ret = -ENOMEM; 748 *ret = -ENOMEM;
748 return urbs; 749 return urbs;
@@ -857,7 +858,7 @@ int snd_usb_caiaq_audio_init(struct snd_usb_caiaqdev *cdev)
857 &snd_usb_caiaq_ops); 858 &snd_usb_caiaq_ops);
858 859
859 cdev->data_cb_info = 860 cdev->data_cb_info =
860 kmalloc(sizeof(struct snd_usb_caiaq_cb_info) * N_URBS, 861 kmalloc_array(N_URBS, sizeof(struct snd_usb_caiaq_cb_info),
861 GFP_KERNEL); 862 GFP_KERNEL);
862 863
863 if (!cdev->data_cb_info) 864 if (!cdev->data_cb_info)
diff --git a/sound/usb/format.c b/sound/usb/format.c
index 49e7ec6d2399..1f7a74a77ea3 100644
--- a/sound/usb/format.c
+++ b/sound/usb/format.c
@@ -188,7 +188,8 @@ static int parse_audio_format_rates_v1(struct snd_usb_audio *chip, struct audiof
188 */ 188 */
189 int r, idx; 189 int r, idx;
190 190
191 fp->rate_table = kmalloc(sizeof(int) * nr_rates, GFP_KERNEL); 191 fp->rate_table = kmalloc_array(nr_rates, sizeof(int),
192 GFP_KERNEL);
192 if (fp->rate_table == NULL) 193 if (fp->rate_table == NULL)
193 return -ENOMEM; 194 return -ENOMEM;
194 195
@@ -362,7 +363,7 @@ static int parse_audio_format_rates_v2v3(struct snd_usb_audio *chip,
362 goto err_free; 363 goto err_free;
363 } 364 }
364 365
365 fp->rate_table = kmalloc(sizeof(int) * fp->nr_rates, GFP_KERNEL); 366 fp->rate_table = kmalloc_array(fp->nr_rates, sizeof(int), GFP_KERNEL);
366 if (!fp->rate_table) { 367 if (!fp->rate_table) {
367 ret = -ENOMEM; 368 ret = -ENOMEM;
368 goto err_free; 369 goto err_free;
diff --git a/sound/usb/line6/capture.c b/sound/usb/line6/capture.c
index 947d6168f24a..d8a14d769f48 100644
--- a/sound/usb/line6/capture.c
+++ b/sound/usb/line6/capture.c
@@ -264,8 +264,8 @@ int line6_create_audio_in_urbs(struct snd_line6_pcm *line6pcm)
264 struct usb_line6 *line6 = line6pcm->line6; 264 struct usb_line6 *line6 = line6pcm->line6;
265 int i; 265 int i;
266 266
267 line6pcm->in.urbs = kzalloc( 267 line6pcm->in.urbs = kcalloc(line6->iso_buffers, sizeof(struct urb *),
268 sizeof(struct urb *) * line6->iso_buffers, GFP_KERNEL); 268 GFP_KERNEL);
269 if (line6pcm->in.urbs == NULL) 269 if (line6pcm->in.urbs == NULL)
270 return -ENOMEM; 270 return -ENOMEM;
271 271
diff --git a/sound/usb/line6/pcm.c b/sound/usb/line6/pcm.c
index b3854f8c0c67..72c6f8e82a7e 100644
--- a/sound/usb/line6/pcm.c
+++ b/sound/usb/line6/pcm.c
@@ -158,8 +158,10 @@ static int line6_buffer_acquire(struct snd_line6_pcm *line6pcm,
158 158
159 /* Invoked multiple times in a row so allocate once only */ 159 /* Invoked multiple times in a row so allocate once only */
160 if (!test_and_set_bit(type, &pstr->opened) && !pstr->buffer) { 160 if (!test_and_set_bit(type, &pstr->opened) && !pstr->buffer) {
161 pstr->buffer = kmalloc(line6pcm->line6->iso_buffers * 161 pstr->buffer =
162 LINE6_ISO_PACKETS * pkt_size, GFP_KERNEL); 162 kmalloc(array3_size(line6pcm->line6->iso_buffers,
163 LINE6_ISO_PACKETS, pkt_size),
164 GFP_KERNEL);
163 if (!pstr->buffer) 165 if (!pstr->buffer)
164 return -ENOMEM; 166 return -ENOMEM;
165 } 167 }
diff --git a/sound/usb/line6/playback.c b/sound/usb/line6/playback.c
index 819e9b2d1d6e..dec89d2beb57 100644
--- a/sound/usb/line6/playback.c
+++ b/sound/usb/line6/playback.c
@@ -409,8 +409,8 @@ int line6_create_audio_out_urbs(struct snd_line6_pcm *line6pcm)
409 struct usb_line6 *line6 = line6pcm->line6; 409 struct usb_line6 *line6 = line6pcm->line6;
410 int i; 410 int i;
411 411
412 line6pcm->out.urbs = kzalloc( 412 line6pcm->out.urbs = kcalloc(line6->iso_buffers, sizeof(struct urb *),
413 sizeof(struct urb *) * line6->iso_buffers, GFP_KERNEL); 413 GFP_KERNEL);
414 if (line6pcm->out.urbs == NULL) 414 if (line6pcm->out.urbs == NULL)
415 return -ENOMEM; 415 return -ENOMEM;
416 416
diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c
index 898afd3001ea..8c3568d8d03b 100644
--- a/sound/usb/mixer.c
+++ b/sound/usb/mixer.c
@@ -2515,7 +2515,7 @@ static int parse_audio_selector_unit(struct mixer_build *state, int unitid,
2515 cval->control = (desc->bDescriptorSubtype == UAC2_CLOCK_SELECTOR) ? 2515 cval->control = (desc->bDescriptorSubtype == UAC2_CLOCK_SELECTOR) ?
2516 UAC2_CX_CLOCK_SELECTOR : UAC2_SU_SELECTOR; 2516 UAC2_CX_CLOCK_SELECTOR : UAC2_SU_SELECTOR;
2517 2517
2518 namelist = kmalloc(sizeof(char *) * desc->bNrInPins, GFP_KERNEL); 2518 namelist = kmalloc_array(desc->bNrInPins, sizeof(char *), GFP_KERNEL);
2519 if (!namelist) { 2519 if (!namelist) {
2520 kfree(cval); 2520 kfree(cval);
2521 return -ENOMEM; 2521 return -ENOMEM;
diff --git a/sound/usb/pcm.c b/sound/usb/pcm.c
index 78d1cad08a0a..160f52c4871b 100644
--- a/sound/usb/pcm.c
+++ b/sound/usb/pcm.c
@@ -1123,7 +1123,7 @@ static int snd_usb_pcm_check_knot(struct snd_pcm_runtime *runtime,
1123 return 0; 1123 return 0;
1124 1124
1125 subs->rate_list.list = rate_list = 1125 subs->rate_list.list = rate_list =
1126 kmalloc(sizeof(int) * count, GFP_KERNEL); 1126 kmalloc_array(count, sizeof(int), GFP_KERNEL);
1127 if (!subs->rate_list.list) 1127 if (!subs->rate_list.list)
1128 return -ENOMEM; 1128 return -ENOMEM;
1129 subs->rate_list.count = count; 1129 subs->rate_list.count = count;
diff --git a/sound/usb/usx2y/usbusx2y.c b/sound/usb/usx2y/usbusx2y.c
index 0ddf29267d70..da4a5a541512 100644
--- a/sound/usb/usx2y/usbusx2y.c
+++ b/sound/usb/usx2y/usbusx2y.c
@@ -266,7 +266,9 @@ int usX2Y_AsyncSeq04_init(struct usX2Ydev *usX2Y)
266 int err = 0, 266 int err = 0,
267 i; 267 i;
268 268
269 if (NULL == (usX2Y->AS04.buffer = kmalloc(URB_DataLen_AsyncSeq*URBS_AsyncSeq, GFP_KERNEL))) { 269 usX2Y->AS04.buffer = kmalloc_array(URBS_AsyncSeq,
270 URB_DataLen_AsyncSeq, GFP_KERNEL);
271 if (NULL == usX2Y->AS04.buffer) {
270 err = -ENOMEM; 272 err = -ENOMEM;
271 } else 273 } else
272 for (i = 0; i < URBS_AsyncSeq; ++i) { 274 for (i = 0; i < URBS_AsyncSeq; ++i) {
diff --git a/sound/usb/usx2y/usbusx2yaudio.c b/sound/usb/usx2y/usbusx2yaudio.c
index 345e439aa95b..2b833054e3b0 100644
--- a/sound/usb/usx2y/usbusx2yaudio.c
+++ b/sound/usb/usx2y/usbusx2yaudio.c
@@ -436,7 +436,9 @@ static int usX2Y_urbs_allocate(struct snd_usX2Y_substream *subs)
436 } 436 }
437 if (!is_playback && !(*purb)->transfer_buffer) { 437 if (!is_playback && !(*purb)->transfer_buffer) {
438 /* allocate a capture buffer per urb */ 438 /* allocate a capture buffer per urb */
439 (*purb)->transfer_buffer = kmalloc(subs->maxpacksize * nr_of_packs(), GFP_KERNEL); 439 (*purb)->transfer_buffer =
440 kmalloc_array(subs->maxpacksize,
441 nr_of_packs(), GFP_KERNEL);
440 if (NULL == (*purb)->transfer_buffer) { 442 if (NULL == (*purb)->transfer_buffer) {
441 usX2Y_urbs_release(subs); 443 usX2Y_urbs_release(subs);
442 return -ENOMEM; 444 return -ENOMEM;
@@ -662,7 +664,8 @@ static int usX2Y_rate_set(struct usX2Ydev *usX2Y, int rate)
662 err = -ENOMEM; 664 err = -ENOMEM;
663 goto cleanup; 665 goto cleanup;
664 } 666 }
665 usbdata = kmalloc(sizeof(int) * NOOF_SETRATE_URBS, GFP_KERNEL); 667 usbdata = kmalloc_array(NOOF_SETRATE_URBS, sizeof(int),
668 GFP_KERNEL);
666 if (NULL == usbdata) { 669 if (NULL == usbdata) {
667 err = -ENOMEM; 670 err = -ENOMEM;
668 goto cleanup; 671 goto cleanup;
diff --git a/virt/kvm/arm/vgic/vgic-v4.c b/virt/kvm/arm/vgic/vgic-v4.c
index bc4265154bac..1ed5f2286b8e 100644
--- a/virt/kvm/arm/vgic/vgic-v4.c
+++ b/virt/kvm/arm/vgic/vgic-v4.c
@@ -126,7 +126,7 @@ int vgic_v4_init(struct kvm *kvm)
126 126
127 nr_vcpus = atomic_read(&kvm->online_vcpus); 127 nr_vcpus = atomic_read(&kvm->online_vcpus);
128 128
129 dist->its_vm.vpes = kzalloc(sizeof(*dist->its_vm.vpes) * nr_vcpus, 129 dist->its_vm.vpes = kcalloc(nr_vcpus, sizeof(*dist->its_vm.vpes),
130 GFP_KERNEL); 130 GFP_KERNEL);
131 if (!dist->its_vm.vpes) 131 if (!dist->its_vm.vpes)
132 return -ENOMEM; 132 return -ENOMEM;
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index aa7da1d8ece2..ada21f47f22b 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -3076,7 +3076,8 @@ static long kvm_vm_ioctl(struct file *filp,
3076 goto out; 3076 goto out;
3077 if (routing.nr) { 3077 if (routing.nr) {
3078 r = -ENOMEM; 3078 r = -ENOMEM;
3079 entries = vmalloc(routing.nr * sizeof(*entries)); 3079 entries = vmalloc(array_size(sizeof(*entries),
3080 routing.nr));
3080 if (!entries) 3081 if (!entries)
3081 goto out; 3082 goto out;
3082 r = -EFAULT; 3083 r = -EFAULT;