From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933310AbdENSi2 (ORCPT ); Sun, 14 May 2017 14:38:28 -0400 Received: from Galois.linutronix.de ([146.0.238.70]:58297 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933116AbdENShg (ORCPT ); Sun, 14 May 2017 14:37:36 -0400 Message-Id: <20170514183613.926588875@linutronix.de> User-Agent: quilt/0.63-1 Date: Sun, 14 May 2017 20:27:34 +0200 From: Thomas Gleixner To: LKML Cc: Peter Zijlstra , Ingo Molnar , Steven Rostedt , Mark Rutland Subject: [patch 18/18] sched: Enable smp_processor_id() checks early References: <20170514182716.347236777@linutronix.de> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15 Content-Disposition: inline; filename=sched--Enable-smp_processor_id---checks-early.patch Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org smp_processor_id() checks are enabled after the boot process is done. That hides bugs in the smp bringup and driver initialization code. Enable it right before the first non-boot CPU is brought up. Signed-off-by: Thomas Gleixner --- init/main.c | 3 +++ lib/smp_processor_id.c | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) Signed-off-by: Thomas Gleixner --- init/main.c | 3 +++ lib/smp_processor_id.c | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) --- a/init/main.c +++ b/init/main.c @@ -1025,6 +1025,9 @@ static noinline void __init kernel_init_ */ set_cpus_allowed_ptr(current, cpumask_of(raw_smp_processor_id())); + /* Enable smp_processor_id() checks */ + system_state = SYSTEM_BOOTING_SMP; + cad_pid = task_pid(current); smp_prepare_cpus(setup_max_cpus); --- a/lib/smp_processor_id.c +++ b/lib/smp_processor_id.c @@ -28,7 +28,7 @@ notrace static unsigned int check_preemp /* * It is valid to assume CPU-locality during early bootup: */ - if (system_state != SYSTEM_RUNNING) + if (system_state < SYSTEM_BOOTING_SMP) goto out; /*