Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751668AbdIFF0T (ORCPT ); Wed, 6 Sep 2017 01:26:19 -0400 Received: from mx1.redhat.com ([209.132.183.28]:32938 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750947AbdIFF0S (ORCPT ); Wed, 6 Sep 2017 01:26:18 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 7A47A8553D Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=bhe@redhat.com Date: Wed, 6 Sep 2017 13:26:14 +0800 From: Baoquan He To: Dou Liyang Cc: x86@kernel.org, linux-kernel@vger.kernel.org, tglx@linutronix.de, mingo@kernel.org, hpa@zytor.com, rjw@rjwysocki.net, bp@alien8.de, indou.takao@jp.fujitsu.com, izumi.taku@jp.fujitsu.com Subject: Re: [PATCH v8 06/13] x86/apic: Mark the apic_intr_mode extern for sanity check cleanup Message-ID: <20170906052614.GG30906@x1> References: <1503890438-27840-1-git-send-email-douly.fnst@cn.fujitsu.com> <1503890438-27840-7-git-send-email-douly.fnst@cn.fujitsu.com> <20170906042514.GF30906@x1> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170906042514.GF30906@x1> User-Agent: Mutt/1.7.0 (2016-08-17) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Wed, 06 Sep 2017 05:26:18 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2211 Lines: 84 On 09/06/17 at 12:25pm, Baoquan He wrote: > On 08/28/17 at 11:20am, Dou Liyang wrote: > > - /* > > * Should not be necessary because the MP table should list the boot > > * CPU too, but we do it for the sake of robustness anyway. > > */ > > @@ -1254,29 +1237,6 @@ static int __init smp_sanity_check(unsigned max_cpus) > > physid_set(hard_smp_processor_id(), phys_cpu_present_map); > > } > > preempt_enable(); > > - > > - /* > > - * If we couldn't find a local APIC, then get out of here now! > > - */ > > - if (APIC_INTEGRATED(boot_cpu_apic_version) && > > - !boot_cpu_has(X86_FEATURE_APIC)) { > > - if (!disable_apic) { > > - pr_err("BIOS bug, local APIC #%d not detected!...\n", > > - boot_cpu_physical_apicid); > > - pr_err("... forcing use of dummy APIC emulation (tell your hw vendor)\n"); > > - } > > - return SMP_NO_APIC; > > - } > > - > > - /* > > - * If SMP should be disabled, then really disable it! > > - */ > > - if (!max_cpus) { > > - pr_info("SMP mode deactivated\n"); > > - return SMP_FORCE_UP; > > - } > > - > > - return SMP_OK; > > } > > > > static void __init smp_cpu_index_default(void) > > @@ -1335,19 +1295,20 @@ void __init native_smp_prepare_cpus(unsigned int max_cpus) > > Please also cleanup the passed in max_cpus since it's not used here any > more. And up to the caller: Oops, I just checked x86 code, other arch also have this hook. Please ingore this comment. > > static noinline void __init kernel_init_freeable(void) > { > ... > smp_prepare_cpus(setup_max_cpus); > ... > } > > > > > apic_intr_mode_init(); > > > > - switch (smp_sanity_check(max_cpus)) { > > - case SMP_NO_CONFIG: > > - disable_smp(); > > - return; > > - case SMP_NO_APIC: > > + smp_sanity_check(); > > + > > + switch (apic_intr_mode) { > > + case APIC_PIC: > > + case APIC_VIRTUAL_WIRE_NO_CONFIG: > > disable_smp(); > > return; > > - case SMP_FORCE_UP: > > + case APIC_SYMMETRIC_IO_NO_ROUTING: > > disable_smp(); > > /* Setup local timer */ > > x86_init.timers.setup_percpu_clockev(); > > return; > > - case SMP_OK: > > + case APIC_VIRTUAL_WIRE: > > + case APIC_SYMMETRIC_IO: > > break; > > } > > > > -- > > 2.5.5 > > > > > >