lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20170906052614.GG30906@x1>
Date:   Wed, 6 Sep 2017 13:26:14 +0800
From:   Baoquan He <bhe@...hat.com>
To:     Dou Liyang <douly.fnst@...fujitsu.com>
Cc:     x86@...nel.org, linux-kernel@...r.kernel.org, tglx@...utronix.de,
        mingo@...nel.org, hpa@...or.com, rjw@...ysocki.net, bp@...en8.de,
        indou.takao@...fujitsu.com, izumi.taku@...fujitsu.com
Subject: Re: [PATCH v8 06/13] x86/apic: Mark the apic_intr_mode extern for
 sanity check cleanup

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
> > 
> > 
> > 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ