]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
treewide: Remove uninitialized_var() usage
authorKees Cook <keescook@chromium.org>
Wed, 3 Jun 2020 20:09:38 +0000 (13:09 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 9 Jun 2023 08:29:01 +0000 (10:29 +0200)
commit0638dcc7e75fbb766761e7b4694d0f0f141bbbd1
tree79b3b3a12f7b495bbe6d742c493130a89fc4545e
parent1eb88dccb827adcb7c94c39becd71ad4d2d533a8
treewide: Remove uninitialized_var() usage

commit 3f649ab728cda8038259d8f14492fe400fbab911 upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
160 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/platforms/52xx/mpc52xx_pic.c
arch/s390/kernel/smp.c
arch/x86/kernel/quirks.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/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/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/mthca/mthca_qp.c
drivers/input/serio/serio_raw.c
drivers/md/dm-io.c
drivers/md/dm-ioctl.c
drivers/md/dm-snap-persistent.c
drivers/md/dm-table.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/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
kernel/async.c
kernel/audit.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
mm/frontswap.c
mm/ksm.c
mm/memcontrol.c
mm/mempolicy.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_hfsc.c
net/sched/sch_htb.c
net/sched/sch_sfq.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