Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0638dcc7 authored by Kees Cook's avatar Kees Cook Committed by Greg Kroah-Hartman
Browse files

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: default avatarKees Cook <keescook@chromium.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 1eb88dcc
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -653,7 +653,7 @@ static void __init map_sa1100_gpio_regs( void )
 */
 */
static void __init get_assabet_scr(void)
static void __init get_assabet_scr(void)
{
{
	unsigned long uninitialized_var(scr), i;
	unsigned long scr, i;


	GPDR |= 0x3fc;			/* Configure GPIO 9:2 as outputs */
	GPDR |= 0x3fc;			/* Configure GPIO 9:2 as outputs */
	GPSR = 0x3fc;			/* Write 0xFF to GPIO 9:2 */
	GPSR = 0x3fc;			/* Write 0xFF to GPIO 9:2 */
+1 −1
Original line number Original line Diff line number Diff line
@@ -799,7 +799,7 @@ static int alignment_get_thumb(struct pt_regs *regs, u16 *ip, u16 *inst)
static int
static int
do_alignment(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
do_alignment(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
{
{
	union offset_union uninitialized_var(offset);
	union offset_union offset;
	unsigned long instrptr;
	unsigned long instrptr;
	int (*handler)(unsigned long addr, u32 instr, struct pt_regs *regs);
	int (*handler)(unsigned long addr, u32 instr, struct pt_regs *regs);
	unsigned int type;
	unsigned int type;
+1 −1
Original line number Original line Diff line number Diff line
@@ -444,7 +444,7 @@ static void
do_copy_task_regs (struct task_struct *task, struct unw_frame_info *info, void *arg)
do_copy_task_regs (struct task_struct *task, struct unw_frame_info *info, void *arg)
{
{
	unsigned long mask, sp, nat_bits = 0, ar_rnat, urbs_end, cfm;
	unsigned long mask, sp, nat_bits = 0, ar_rnat, urbs_end, cfm;
	unsigned long uninitialized_var(ip);	/* GCC be quiet */
	unsigned long ip;
	elf_greg_t *dst = arg;
	elf_greg_t *dst = arg;
	struct pt_regs *pt;
	struct pt_regs *pt;
	char nat;
	char nat;
+1 −1
Original line number Original line Diff line number Diff line
@@ -180,7 +180,7 @@ static void *per_cpu_node_setup(void *cpu_data, int node)
void __init setup_per_cpu_areas(void)
void __init setup_per_cpu_areas(void)
{
{
	struct pcpu_alloc_info *ai;
	struct pcpu_alloc_info *ai;
	struct pcpu_group_info *uninitialized_var(gi);
	struct pcpu_group_info *gi;
	unsigned int *cpu_map;
	unsigned int *cpu_map;
	void *base;
	void *base;
	unsigned long base_offset;
	unsigned long base_offset;
+1 −1
Original line number Original line Diff line number Diff line
@@ -369,7 +369,7 @@ EXPORT_SYMBOL(flush_tlb_range);


void ia64_tlb_init(void)
void ia64_tlb_init(void)
{
{
	ia64_ptce_info_t uninitialized_var(ptce_info); /* GCC be quiet */
	ia64_ptce_info_t ptce_info;
	u64 tr_pgbits;
	u64 tr_pgbits;
	long status;
	long status;
	pal_vm_info_1_u_t vm_info_1;
	pal_vm_info_1_u_t vm_info_1;
Loading