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: <20201106004743.GA380136@tp-x1>
Date:   Thu, 5 Nov 2020 19:47:43 -0500
From:   Brian Masney <bmasney@...hat.com>
To:     boris.ostrovsky@...cle.com, jgross@...e.com, sstabellini@...nel.org
Cc:     tglx@...utronix.de, mingo@...hat.com, bp@...en8.de, x86@...nel.org,
        hpa@...or.com, xen-devel@...ts.xenproject.org,
        linux-kernel@...r.kernel.org, dustymabe@...hat.com
Subject: Re: [PATCH] x86/xen: fix warning when running with nosmt mitigations

On Thu, Nov 05, 2020 at 07:35:29PM -0500, Brian Masney wrote:
> diff --git a/arch/x86/xen/spinlock.c b/arch/x86/xen/spinlock.c
> index 799f4eba0a62..4a052459a08e 100644
> --- a/arch/x86/xen/spinlock.c
> +++ b/arch/x86/xen/spinlock.c
> @@ -93,9 +93,24 @@ void xen_init_lock_cpu(int cpu)
>  
>  void xen_uninit_lock_cpu(int cpu)
>  {
> +	int irq;
> +
>  	if (!xen_pvspin)
>  		return;
>  
> +	/*
> +	 * When booting the kernel with 'mitigations=auto,nosmt', the secondary
> +	 * CPUs are not activated and only the primary thread on each CPU core
> +	 * is used. In this situation, xen_hvm_smp_prepare_cpus(), and more
> +	 * importantly xen_init_lock_cpu(), is not called, so the
> +	 * lock_kicker_irq is not initialized for the secondary CPUs. Let's
> +	 * exit early if the irq is not set to avoid a warning in the console
> +	 * log.
> +	 */
> +	irq = per_cpu(lock_kicker_irq, cpu);
> +	if (irq == -1)
> +		return;
> +
>  	unbind_from_irqhandler(per_cpu(lock_kicker_irq, cpu), NULL);

As soon as I saw this on lore, I saw that I should have passed the irq
variable to unbind_from_irqhandler() rather than doing another per_cpu()
lookup. I'll wait for feedback about the general approach before posting
a v2.

Brian

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ