Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp6203471ybv; Tue, 18 Feb 2020 11:59:06 -0800 (PST) X-Google-Smtp-Source: APXvYqwLcZ3+95goi8vIc3vCX81NUNKIbemdJJ9zZQcuTpkZqX3+9zzqLuH3BVFHxlO2Aonx8aYg X-Received: by 2002:a05:6830:1f1c:: with SMTP id u28mr17803108otg.143.1582055946435; Tue, 18 Feb 2020 11:59:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1582055946; cv=none; d=google.com; s=arc-20160816; b=0xGNE09H0pr6l7eLbg76Atmwer54KZVAmLQHZ2vRbKiuYQiBrWhKhAHJdzjQN1NpiR 2OsD6WXDBE1sWMknvWCURJx7XIQu9BaJKqoe1u7YUdwAKsn1EeRQBFifsnXsvuxDMMUG 5upxsE33/+sQZYPgmQxvQXpdWmuvwdCkqSNMFRc10myO2klJ+j2Oj0MMfs+5EXrspdcr CWhlTPVMq0hiJ+eNhbMt5eCioxR0bEcXHgqIj8+2HLrBKJzezOjULVZdpSsDCZpawQyF 2AbBn9yA2oy6ad7mRrkxHwVnQy85w+ls//AvTVPvLf0497UIKF8lNJozaBRYsb3heCM7 pISQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=OaDg5ff4I3DgULBqqO4NvXPtUENIXFIbHQLM6js8CiY=; b=osKlbllXbufyxJ+G+rdXHsxlvHj+JWPUDB0YNfW2u78somKWR0Q4DsINctL9oGSFCe H8Ot0Dl0mErwi6f92pVzxJg0wPok0uMoB2T5FCB2UcVZ0micSPbGMxlober1XLxPuUbh ZjlbDlhMjPh4LGIO1QwVcdmZb+wi8rJAnjKntprIJ6JO+Qa8e4bHO/7CW094OaHxkG9M p47nlIfJfXor0S4ojDqXKDuZDM0aJ+U8gH1uqHSaF7R7LG5DXmCWTar0ydqWn+BTX7wX qlhWm1/KfWpuhTzAZ8mAHXtB3vSx92wL9XHWTHDb6rAdRYhYzg/ipTOSkaHQMkWCYmwR MdJA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=2v3n3+xh; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m11si8151520oim.223.2020.02.18.11.58.54; Tue, 18 Feb 2020 11:59:06 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=2v3n3+xh; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727709AbgBRT60 (ORCPT + 99 others); Tue, 18 Feb 2020 14:58:26 -0500 Received: from mail.kernel.org ([198.145.29.99]:35994 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728172AbgBRT6X (ORCPT ); Tue, 18 Feb 2020 14:58:23 -0500 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 8DEDF20659; Tue, 18 Feb 2020 19:58:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1582055902; bh=gXlqe2ZJceVqgHl8SGNURvfC+AiCU2Ij8n9ZA2sMH2Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=2v3n3+xh+ipNTB3YVRB0WslaaMrjJ8h1bJZdS/vD1b/ha/MCHH4LWpvQfDgd/meT5 8RMQuuB/kx2fJPK+OJBtQjlj5Iwj/lRzF2ZpfK3SEQwVLvLi3D7da9kWP8uthWO7fd F9j2Xx44sL+Y5f+7fY1TKX19jBfsxyhYbEoncAIQ= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Catalin Marinas , Srinivas Ramana , Marc Zyngier , Will Deacon Subject: [PATCH 5.4 25/66] arm64: ssbs: Fix context-switch when SSBS is present on all CPUs Date: Tue, 18 Feb 2020 20:54:52 +0100 Message-Id: <20200218190430.404051028@linuxfoundation.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200218190428.035153861@linuxfoundation.org> References: <20200218190428.035153861@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Will Deacon commit fca3d33d8ad61eb53eca3ee4cac476d1e31b9008 upstream. When all CPUs in the system implement the SSBS extension, the SSBS field in PSTATE is the definitive indication of the mitigation state. Further, when the CPUs implement the SSBS manipulation instructions (advertised to userspace via an HWCAP), EL0 can toggle the SSBS field directly and so we cannot rely on any shadow state such as TIF_SSBD at all. Avoid forcing the SSBS field in context-switch on such a system, and simply rely on the PSTATE register instead. Cc: Cc: Catalin Marinas Cc: Srinivas Ramana Fixes: cbdf8a189a66 ("arm64: Force SSBS on context switch") Reviewed-by: Marc Zyngier Signed-off-by: Will Deacon Signed-off-by: Greg Kroah-Hartman --- arch/arm64/kernel/process.c | 7 +++++++ 1 file changed, 7 insertions(+) --- a/arch/arm64/kernel/process.c +++ b/arch/arm64/kernel/process.c @@ -466,6 +466,13 @@ static void ssbs_thread_switch(struct ta if (unlikely(next->flags & PF_KTHREAD)) return; + /* + * If all CPUs implement the SSBS extension, then we just need to + * context-switch the PSTATE field. + */ + if (cpu_have_feature(cpu_feature(SSBS))) + return; + /* If the mitigation is enabled, then we leave SSBS clear. */ if ((arm64_get_ssbd_state() == ARM64_SSBD_FORCE_ENABLE) || test_tsk_thread_flag(next, TIF_SSBD))