Skip to contentSkip to conversation

core kernel fixes

GIT PULL Ingo Molnar 1 participant 1 message Jul 13, 2016

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

Linus,

Please pull the latest core-urgent-for-linus git tree from:

git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git core-urgent-for-linus

# HEAD: a7c734140aa36413944eef0f8c660e0e2256357d cpu/hotplug: Keep enough storage space if SMP=n to avoid array out of bounds scribble

Fix an objtool false positive plus an UP kernel memory corruption bug on certain configs.

Thanks,

Ingo

------------------>
Josh Poimboeuf (1):
objtool: Fix STACK_FRAME_NON_STANDARD macro checking for function symbols

Thomas Gleixner (1):
cpu/hotplug: Keep enough storage space if SMP=n to avoid array out of bounds scribble

 kernel/cpu.c                  | 2 ++
 tools/objtool/builtin-check.c | 8 ++++++--
 2 files changed, 8 insertions(+), 2 deletions(-)
kernel/cpu.c +2 -0
index d948e44c471e..7b61887f7ccd 100644
@@ -1201,6 +1201,8 @@ static struct cpuhp_step cpuhp_bp_states[] = {
 		.teardown		= takedown_cpu,
 		.cant_stop		= true,
 	},
+#else
+	[CPUHP_BRINGUP_CPU] = { },
 #endif
 };
 
tools/objtool/builtin-check.c +6 -2
index e8a1e69eb92c..25d803148f5c 100644
@@ -122,10 +122,14 @@ static bool ignore_func(struct objtool_file *file, struct symbol *func)
 
 	/* check for STACK_FRAME_NON_STANDARD */
 	if (file->whitelist && file->whitelist->rela)
-		list_for_each_entry(rela, &file->whitelist->rela->rela_list, list)
-			if (rela->sym->sec == func->sec &&
+		list_for_each_entry(rela, &file->whitelist->rela->rela_list, list) {
+			if (rela->sym->type == STT_SECTION &&
+			    rela->sym->sec == func->sec &&
 			    rela->addend == func->offset)
 				return true;
+			if (rela->sym->type == STT_FUNC && rela->sym == func)
+				return true;
+		}
 
 	/* check if it has a context switching instruction */
 	func_for_each_insn(file, func, insn)