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 X-Spam-Level: X-Spam-Status: No, score=-3.0 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, T_DKIMWL_WL_HIGH,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9F2CDC04AB5 for ; Thu, 6 Jun 2019 16:45:08 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 793BD206BB for ; Thu, 6 Jun 2019 16:45:08 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="nFbipfQL" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 793BD206BB Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To: References:List-Owner; bh=FMtrqa2oUJBvQyI8IgcaOwluDAHX2iYyrAALYwJMObA=; b=nFb ipfQL9OfmECvDaR4FMzJjxrnSwM3Ikyn5TCPYSgymZOcw5mn4NU7TzRX5uNR4qLoVHs8WX7wXmywj d4QR7zLU2oBj441/vDmyJxKvLXkRa35qrdvEdw+Ua0bmGLwcWWITKuEsNlteRcp+iMOaYBztGOoim f/Vh4EF1PLSoXUASIoOa0jlg/EY9Fl/YsJPhQbvJbNEoEKuTjfuZUFxKY4vJg/BUq+aRQ5hMzIljW vWZGxpqytz2/kPEIEGWDMixSDsuTZmCKD/E+DxonjJf/ZumJcEj0lMI7AsU+YaXPXcLXwJI5fq867 tfay+FxdEYK17aDZIDnBYU8Srbw3NcA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1hYvVj-0007f2-FF; Thu, 06 Jun 2019 16:45:07 +0000 Received: from usa-sjc-mx-foss1.foss.arm.com ([217.140.101.70] helo=foss.arm.com) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1hYvVg-00074v-0m for linux-arm-kernel@lists.infradead.org; Thu, 06 Jun 2019 16:45:05 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 067F0374; Thu, 6 Jun 2019 09:45:03 -0700 (PDT) Received: from e103592.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.72.51.249]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 768393F690; Thu, 6 Jun 2019 09:45:01 -0700 (PDT) From: Dave Martin To: linux-arm-kernel@lists.infradead.org Subject: [PATCH 0/2] arm64/sve: Fix mutating register endianness on big-endian Date: Thu, 6 Jun 2019 17:44:53 +0100 Message-Id: <1559839495-22315-1-git-send-email-Dave.Martin@arm.com> X-Mailer: git-send-email 2.1.4 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190606_094504_093631_187E2D32 X-CRM114-Status: GOOD ( 11.97 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , gdb@sourceware.org, Will Deacon , Zhang Lei , Julien Grall , Catalin Marinas , =?UTF-8?q?Alex=20Benn=C3=A9e?= MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org By inspection while debugging something else, I noticed that the byte order of FPSIMD V-register stores and SVE Z-register stores is not the same when running on big-endian. This is not properly taken into account when moving between the FPSIMD and SVE register views inside the kernel, resulting in the bytes of a V-register getting spontaneously reversed in some situations, from userspace's point of view. The signal frame and ptrace interface are also affected. The KVM ABI forbids mixing the two views and so should not be affected. See patch 2 for details. Patch 1 does some trivial preparatory refactoring. gdb may or may not be affected by this, depending on how it uses the NT_PRFPREG and NT_ARM_SVE regsets. I'll leave it to the developers to assess that. Dave Martin (2): arm64/sve: Factor out FPSIMD to SVE state conversion arm64/sve: Fix missing SVE/FPSIMD endianness conversions Documentation/arm64/sve.txt | 16 +++++++++++ arch/arm64/include/uapi/asm/kvm.h | 7 +++++ arch/arm64/include/uapi/asm/ptrace.h | 4 +++ arch/arm64/include/uapi/asm/sigcontext.h | 14 +++++++++ arch/arm64/kernel/fpsimd.c | 49 ++++++++++++++++++++++++-------- 5 files changed, 78 insertions(+), 12 deletions(-) -- 2.1.4 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel