From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 9C2B7C25B06 for ; Mon, 15 Aug 2022 13:38:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=SaEvx0MYOI88vCDaL8fisgrhnN2fm+4OEZKAj0EmZO0=; b=PSq0FHliB5gune h3DTvS2U4H48BSggOkM/+ihULkC4HWoQE7VY/eXqVmRIS+La0EtA9fFyFzgHcn5cUHHm5MB7kZYHA 28fYjGCLkzAuxAa+ZNNtolJhKorACXXLCGIKFxNli5bCInMF5+ppJNenYfE5fz3f36pHpVOLcxhb7 cTfROPK3j9AWQjglWgRbaP2CQHWtetaJ0Nv51hH3xmu1BGQXtTXyMHdUSEyiRxL/YFXfOHZkNDLND l8aHcROr8Jj1hXEfAjZlBfV8OtprOQk8wI48iJtM3IbTbDMfUTzh4qqXU428O7DTfqXuG7D7I4j+2 aq1yZW7QY33oczMheaSA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oNaHX-00GuZS-VY; Mon, 15 Aug 2022 13:37:28 +0000 Received: from ams.source.kernel.org ([145.40.68.75]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oNa9i-00GoaI-US for linux-arm-kernel@lists.infradead.org; Mon, 15 Aug 2022 13:29:24 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 4D03EB80EB6; Mon, 15 Aug 2022 13:29:21 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E9743C433C1; Mon, 15 Aug 2022 13:29:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1660570160; bh=aR4Z2H7IS9VZAHgFRj6abI0xO/CcwsEl9urxKw0XgBY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=lhlGh2D64i+789GW8jFS6q8sc04kAIrqXN8oUrnOsFOwBEp4dCkWqkGrPO1o4OBwL 8RS3LwLOQH/DrBgarqA9BlnjyHECDfyjS76gZgjxeG+QYlp5qoMeEknlhn8CTjumZP Nsv3YVJMc66qMa5OKgGP1/AJ9Ftlt5PtpNkvnQfpEo9hj8jS/et5eUP3YpAOK30f63 9aTLt/iY/OWEezHpvx0EOxQRhSfQxJ9rVgYs9801PDlxTmKJizwWjOAs0miPnrTVi3 OHJLJZMx/uWpiwd0FVHlZI/StGviKlTcJ16UefY//qAyZRyQ5f9WKrMhT+RnmNMhEa fefdKL6chy3cQ== From: Mark Brown To: Catalin Marinas , Will Deacon Cc: linux-arm-kernel@lists.infradead.org, Mark Brown Subject: [PATCH v2 2/4] arm64/signal: Flush FPSIMD register state when disabling streaming mode Date: Mon, 15 Aug 2022 14:28:32 +0100 Message-Id: <20220815132834.229769-3-broonie@kernel.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220815132834.229769-1-broonie@kernel.org> References: <20220815132834.229769-1-broonie@kernel.org> MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1488; i=broonie@kernel.org; h=from:subject; bh=aR4Z2H7IS9VZAHgFRj6abI0xO/CcwsEl9urxKw0XgBY=; b=owEBbQGS/pANAwAKASTWi3JdVIfQAcsmYgBi+koAsh3Ulev0BWFPHRPROyF5NdJ4cnNnsfm+6nnN gsvwaECJATMEAAEKAB0WIQSt5miqZ1cYtZ/in+ok1otyXVSH0AUCYvpKAAAKCRAk1otyXVSH0NzkCA CF0q6Kba3g245fkm00A3juE1qQdqwmu1rtT7G+kwznFZAAgPaGCPxqcona2vbCKlsNPQin5C8naU3w Q0VfB5AvG2ac+7mbOSQ+pAeTbgARNaD5LJvth77KYCW7CNnkZgqUZHNp5RKtObCOcV1x3iXBuq7aK5 kJZ59dbpt3q6VBftKNi8Z5Wzlw8qfwe0H1ywowA0NEO5vmp59bQECFEa9UBig8J3Bj7srtK04jQL5c v7RrMs11no2KDj1RNqzkcnX3klSGJTFL5+yYm4fK+ABSkEupE64iJR8YyUQLHdyn/xW05w066uJ6uC ypy/dqhj81cXQWpZMfo07fhsPPJgjW X-Developer-Key: i=broonie@kernel.org; a=openpgp; fpr=3F2568AAC26998F9E813A1C5C3F436CA30F5D8EB X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220815_062923_165282_E65EAD0D X-CRM114-Status: GOOD ( 14.43 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org When handling a signal delivered to a context with streaming mode enabled we will disable streaming mode for the signal handler, when doing so we should also flush the saved FPSIMD register state like exiting streaming mode in the hardware would do so that if that state is reloaded we get the same behaviour. Without this we will reload whatever the last FPSIMD state that was saved for the task was. Fixes: 40a8e87bb3285 ("arm64/sme: Disable ZA and streaming mode when handling signals") Signed-off-by: Mark Brown --- arch/arm64/kernel/signal.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/arch/arm64/kernel/signal.c b/arch/arm64/kernel/signal.c index a410c980e50e..0c227f57def5 100644 --- a/arch/arm64/kernel/signal.c +++ b/arch/arm64/kernel/signal.c @@ -926,6 +926,16 @@ static void setup_return(struct pt_regs *regs, struct k_sigaction *ka, /* Signal handlers are invoked with ZA and streaming mode disabled */ if (system_supports_sme()) { + /* + * If we were in streaming mode the saved register + * state was SVE but we will exit SM and use the + * FPSIMD register state - flush the saved FPSIMD + * register state in case it gets loaded. + */ + if (current->thread.svcr & SVCR_SM_MASK) + memset(¤t->thread.uw.fpsimd_state, 0, + sizeof(current->thread.uw.fpsimd_state)); + current->thread.svcr &= ~(SVCR_ZA_MASK | SVCR_SM_MASK); sme_smstop(); -- 2.30.2 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel