Commit bab202ab authored by Lukas Bulwahn's avatar Lukas Bulwahn Committed by Borislav Petkov
Browse files

x86/mm: Declare 'start' variable where it is used



It is not required to initialize the local variable start in
memory_map_top_down(), as the variable will be initialized in any path
before it is used.

make clang-analyzer on x86_64 tinyconfig reports:

  arch/x86/mm/init.c:612:15: warning: Although the value stored to 'start' \
  is used in the enclosing expression, the value is never actually read \
  from 'start' [clang-analyzer-deadcode.DeadStores]

Move the variable declaration into the loop, where it is used.

No code changed:

  # arch/x86/mm/init.o:

   text    data     bss     dec     hex filename
   7105    1424   26768   35297    89e1 init.o.before
   7105    1424   26768   35297    89e1 init.o.after

md5:
   a8d76c1bb5fce9cae251780a7ee7730f  init.o.before.asm
   a8d76c1bb5fce9cae251780a7ee7730f  init.o.after.asm

 [ bp: Massage. ]

Signed-off-by: default avatarLukas Bulwahn <lukas.bulwahn@gmail.com>
Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
Acked-by: default avatarDave Hansen <dave.hansen@linux.intel.com>
Link: https://lkml.kernel.org/r/20200928100004.25674-1-lukas.bulwahn@gmail.com
parent 31d85460
Loading
Loading
Loading
Loading
+4 −2
Original line number Original line Diff line number Diff line
@@ -596,7 +596,7 @@ static unsigned long __init get_new_step_size(unsigned long step_size)
static void __init memory_map_top_down(unsigned long map_start,
static void __init memory_map_top_down(unsigned long map_start,
				       unsigned long map_end)
				       unsigned long map_end)
{
{
	unsigned long real_end, start, last_start;
	unsigned long real_end, last_start;
	unsigned long step_size;
	unsigned long step_size;
	unsigned long addr;
	unsigned long addr;
	unsigned long mapped_ram_size = 0;
	unsigned long mapped_ram_size = 0;
@@ -609,7 +609,7 @@ static void __init memory_map_top_down(unsigned long map_start,
	step_size = PMD_SIZE;
	step_size = PMD_SIZE;
	max_pfn_mapped = 0; /* will get exact value next */
	max_pfn_mapped = 0; /* will get exact value next */
	min_pfn_mapped = real_end >> PAGE_SHIFT;
	min_pfn_mapped = real_end >> PAGE_SHIFT;
	last_start = start = real_end;
	last_start = real_end;


	/*
	/*
	 * We start from the top (end of memory) and go to the bottom.
	 * We start from the top (end of memory) and go to the bottom.
@@ -618,6 +618,8 @@ static void __init memory_map_top_down(unsigned long map_start,
	 * for page table.
	 * for page table.
	 */
	 */
	while (last_start > map_start) {
	while (last_start > map_start) {
		unsigned long start;

		if (last_start > step_size) {
		if (last_start > step_size) {
			start = round_down(last_start - 1, step_size);
			start = round_down(last_start - 1, step_size);
			if (start < map_start)
			if (start < map_start)