]> git.baikalelectronics.ru Git - kernel.git/commit
treewide: Remove uninitialized_var() usage
authorKees Cook <keescook@chromium.org>
Wed, 3 Jun 2020 20:09:38 +0000 (13:09 -0700)
committerKees Cook <keescook@chromium.org>
Thu, 16 Jul 2020 19:35:15 +0000 (12:35 -0700)
commit747172ea19fcb3b98fc10a7a0470638e6fa8e362
treed1552706b153fa98d4c9e99eb2d64913fda5e014
parentc105d0057e168d5e6179390c368f2c5d978ceb9f
treewide: Remove uninitialized_var() usage

Using uninitialized_var() is dangerous as it papers over real bugs[1]
(or can in the future), and suppresses unrelated compiler warnings
(e.g. "unused variable"). If the compiler thinks it is uninitialized,
either simply initialize the variable or make compiler changes.

In preparation for removing[2] the[3] macro[4], remove all remaining
needless uses with the following script:

git grep '\buninitialized_var\b' | cut -d: -f1 | sort -u | \
xargs perl -pi -e \
's/\buninitialized_var\(([^\)]+)\)/\1/g;
 s:\s*/\* (GCC be quiet|to make compiler happy) \*/$::g;'

drivers/video/fbdev/riva/riva_hw.c was manually tweaked to avoid
pathological white-space.

No outstanding warnings were found building allmodconfig with GCC 9.3.0
for x86_64, i386, arm64, arm, powerpc, powerpc64le, s390x, mips, sparc64,
alpha, and m68k.

[1] https://lore.kernel.org/lkml/20200603174714.192027-1-glider@google.com/
[2] https://lore.kernel.org/lkml/CA+55aFw+Vbj0i=1TGqCR5vQkCzWJ0QxK6CernOU6eedsudAixw@mail.gmail.com/
[3] https://lore.kernel.org/lkml/CA+55aFwgbgqhbp1fkxvRKEpzyR5J8n1vKT1VZdz9knmPuXhOeg@mail.gmail.com/
[4] https://lore.kernel.org/lkml/CA+55aFz2500WfbKXAx8s67wrm9=yVJu65TpLgN_ybYNv0VEOKA@mail.gmail.com/

Reviewed-by: Leon Romanovsky <leonro@mellanox.com> # drivers/infiniband and mlx4/mlx5
Acked-by: Jason Gunthorpe <jgg@mellanox.com> # IB
Acked-by: Kalle Valo <kvalo@codeaurora.org> # wireless drivers
Reviewed-by: Chao Yu <yuchao0@huawei.com> # erofs
Signed-off-by: Kees Cook <keescook@chromium.org>
179 files changed:
arch/arm/mach-sa1100/assabet.c
arch/arm/mm/alignment.c
arch/ia64/kernel/process.c
arch/ia64/mm/discontig.c
arch/ia64/mm/tlb.c
arch/mips/lib/dump_tlb.c
arch/mips/mm/init.c
arch/mips/mm/tlb-r4k.c
arch/powerpc/kvm/book3s_64_mmu_radix.c
arch/powerpc/kvm/powerpc.c
arch/powerpc/platforms/52xx/mpc52xx_pic.c
arch/s390/kernel/smp.c
arch/x86/kernel/quirks.c
arch/x86/kvm/mmu/mmu.c
arch/x86/kvm/mmu/paging_tmpl.h
arch/x86/kvm/x86.c
block/blk-merge.c
drivers/acpi/acpi_pad.c
drivers/ata/libata-scsi.c
drivers/atm/zatm.c
drivers/block/drbd/drbd_nl.c
drivers/block/rbd.c
drivers/clk/clk-gate.c
drivers/firewire/ohci.c
drivers/gpu/drm/bridge/sil-sii8620.c
drivers/gpu/drm/drm_edid.c
drivers/gpu/drm/exynos/exynos_drm_dsi.c
drivers/gpu/drm/i915/display/intel_fbc.c
drivers/gpu/drm/i915/gt/intel_lrc.c
drivers/gpu/drm/i915/intel_uncore.c
drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c
drivers/i2c/busses/i2c-rk3x.c
drivers/ide/ide-acpi.c
drivers/ide/ide-atapi.c
drivers/ide/ide-io-std.c
drivers/ide/ide-io.c
drivers/ide/ide-sysfs.c
drivers/ide/umc8672.c
drivers/idle/intel_idle.c
drivers/infiniband/core/uverbs_cmd.c
drivers/infiniband/hw/cxgb4/cm.c
drivers/infiniband/hw/cxgb4/cq.c
drivers/infiniband/hw/mlx4/qp.c
drivers/infiniband/hw/mlx5/cq.c
drivers/infiniband/hw/mlx5/devx.c
drivers/infiniband/hw/mlx5/wr.c
drivers/infiniband/hw/mthca/mthca_qp.c
drivers/infiniband/sw/siw/siw_qp_rx.c
drivers/input/serio/serio_raw.c
drivers/iommu/intel/iommu.c
drivers/md/dm-io.c
drivers/md/dm-ioctl.c
drivers/md/dm-snap-persistent.c
drivers/md/dm-table.c
drivers/md/dm-writecache.c
drivers/md/raid5.c
drivers/media/dvb-frontends/rtl2832.c
drivers/media/tuners/qt1010.c
drivers/media/usb/gspca/vicam.c
drivers/media/usb/uvc/uvc_video.c
drivers/memstick/host/jmb38x_ms.c
drivers/memstick/host/tifm_ms.c
drivers/mmc/host/sdhci.c
drivers/mtd/nand/raw/nand_ecc.c
drivers/mtd/nand/raw/s3c2410.c
drivers/mtd/parsers/afs.c
drivers/mtd/ubi/eba.c
drivers/net/can/janz-ican3.c
drivers/net/ethernet/broadcom/bnx2.c
drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c
drivers/net/ethernet/neterion/s2io.c
drivers/net/ethernet/qlogic/qla3xxx.c
drivers/net/ethernet/sun/cassini.c
drivers/net/ethernet/sun/niu.c
drivers/net/wan/z85230.c
drivers/net/wireless/ath/ath10k/core.c
drivers/net/wireless/ath/ath6kl/init.c
drivers/net/wireless/ath/ath9k/init.c
drivers/net/wireless/broadcom/b43/debugfs.c
drivers/net/wireless/broadcom/b43/dma.c
drivers/net/wireless/broadcom/b43/lo.c
drivers/net/wireless/broadcom/b43/phy_n.c
drivers/net/wireless/broadcom/b43/xmit.c
drivers/net/wireless/broadcom/b43legacy/debugfs.c
drivers/net/wireless/broadcom/b43legacy/main.c
drivers/net/wireless/intel/iwlegacy/3945.c
drivers/net/wireless/intel/iwlegacy/4965-mac.c
drivers/net/wireless/realtek/rtlwifi/rtl8192cu/hw.c
drivers/pci/pcie/aer.c
drivers/platform/x86/hdaps.c
drivers/scsi/dc395x.c
drivers/scsi/pm8001/pm8001_hwi.c
drivers/scsi/pm8001/pm80xx_hwi.c
drivers/ssb/driver_chipcommon.c
drivers/tty/cyclades.c
drivers/tty/isicom.c
drivers/usb/musb/cppi_dma.c
drivers/usb/storage/sddr55.c
drivers/vhost/net.c
drivers/video/fbdev/matrox/matroxfb_maven.c
drivers/video/fbdev/pm3fb.c
drivers/video/fbdev/riva/riva_hw.c
drivers/virtio/virtio_ring.c
fs/afs/dir.c
fs/afs/security.c
fs/dlm/netlink.c
fs/erofs/data.c
fs/erofs/zdata.c
fs/fat/dir.c
fs/fuse/control.c
fs/fuse/cuse.c
fs/fuse/file.c
fs/gfs2/aops.c
fs/gfs2/bmap.c
fs/gfs2/lops.c
fs/hfsplus/unicode.c
fs/isofs/namei.c
fs/jffs2/erase.c
fs/nfsd/nfsctl.c
fs/ocfs2/alloc.c
fs/ocfs2/dir.c
fs/ocfs2/extent_map.c
fs/ocfs2/namei.c
fs/ocfs2/refcounttree.c
fs/ocfs2/xattr.c
fs/omfs/file.c
fs/overlayfs/copy_up.c
fs/ubifs/commit.c
fs/ubifs/dir.c
fs/ubifs/file.c
fs/ubifs/journal.c
fs/ubifs/lpt.c
fs/ubifs/tnc.c
fs/ubifs/tnc_misc.c
fs/udf/balloc.c
fs/xfs/xfs_bmap_util.c
include/net/flow_offload.h
kernel/async.c
kernel/audit.c
kernel/debug/kdb/kdb_io.c
kernel/dma/debug.c
kernel/events/core.c
kernel/events/uprobes.c
kernel/exit.c
kernel/futex.c
kernel/locking/lockdep.c
kernel/trace/ring_buffer.c
lib/radix-tree.c
lib/test_lockup.c
mm/frontswap.c
mm/ksm.c
mm/memcontrol.c
mm/memory.c
mm/mempolicy.c
mm/page_alloc.c
mm/percpu.c
mm/slub.c
mm/swap.c
net/dccp/options.c
net/ipv4/netfilter/nf_socket_ipv4.c
net/ipv6/ip6_flowlabel.c
net/ipv6/netfilter/nf_socket_ipv6.c
net/netfilter/nf_conntrack_ftp.c
net/netfilter/nfnetlink_log.c
net/netfilter/nfnetlink_queue.c
net/sched/cls_flow.c
net/sched/sch_cake.c
net/sched/sch_cbq.c
net/sched/sch_fq_codel.c
net/sched/sch_fq_pie.c
net/sched/sch_hfsc.c
net/sched/sch_htb.c
net/sched/sch_sfq.c
net/sunrpc/svcsock.c
net/sunrpc/xprtsock.c
net/tls/tls_sw.c
sound/core/control_compat.c
sound/isa/sb/sb16_csp.c
sound/usb/endpoint.c