Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp1694178pxf; Fri, 9 Apr 2021 15:12:53 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzwbs8Erh9L44LC0BHC9dyYiN8kQ0xaLfKreuzXQ9dhJKgA1qJe40e+jFnGeU9OqP3nXz6+ X-Received: by 2002:aa7:ca04:: with SMTP id y4mr9330376eds.72.1618006373209; Fri, 09 Apr 2021 15:12:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1618006373; cv=none; d=google.com; s=arc-20160816; b=tM/YptLNYu4N7pjQukAlxJZ6bu1ofZxbqooG1AnjBWes81mjtcw45+XXiI4xLW3Etd fnTMSZGY57gPi1S/g26BX2ncpGgXL9WObfrXWQRuDUtJLvTkjAlLIyK9xhLYzktbZcW9 oZWUXmoP6ryLpgDofdiNDmdV1DL0ufxpruxS6xrC29LZHdsPbOAuN1KyvduJHFYfW5H/ f7JTqG7ytQPxPSsDVCC65SiSRa+WGjopzZNlEdbiKG97Vm1VusiJT5TnmgHaJNC4HCb8 3RrU1RyidDqSBN8FmjeIxieMizpl5YF74vjPXJZ3R6MHVPrtuFnI0VT6FIcI9pHvm+Vy Hfkg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=ixGoym9kEcI52xTFPyPcf2MiQm4nOu0wCYD3mdlEmXY=; b=CXUopf67QLvzZplbq+upKjP8jdmSRL8Ex8lesq5GPCB3iLPip9pWD1leh7v7C7BgSB e+T9QYB9eWwqkfIGGiiIdyekiihSqLLydiFT8NRcYRYALL2rYbd+yJNFXGDcOaBihUrL Pf5ruekND+IeszowY/a4tqPWBfZ3o/yx9OFbx+TnHDvcr1Tvg14fH9WVCgrJn/AQre+r 0gLqsllmE0jbfqXXSPItYShQuPajMP/A8lycVTghZrYr4P6pVZ+ZhA+EezwPDsGj+Zr9 2RuMLMcPHTGb1RTHixlGKQ7m+MyGpMO8oOCfkYnWfdYQHu4CBw4HN2lc6/S5HIHIF0NS DZUA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=u8y2wdd5; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id h7si2957034ejk.356.2021.04.09.15.12.19; Fri, 09 Apr 2021 15:12:53 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=u8y2wdd5; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234902AbhDIWMb (ORCPT + 99 others); Fri, 9 Apr 2021 18:12:31 -0400 Received: from mail.kernel.org ([198.145.29.99]:53520 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234602AbhDIWMb (ORCPT ); Fri, 9 Apr 2021 18:12:31 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id E0ABB610A8; Fri, 9 Apr 2021 22:12:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1618006337; bh=M7s3pMhdWn3yHEsyevVbXdjmmUWWkdETqRhmlxr/BlU=; h=From:To:Cc:Subject:Date:From; b=u8y2wdd5u/QpjQy7m0Mnv9ezCsy+6q+xfW8jgXnagVFBq5MniZ9a9DTrDCRolQoo5 oI8lvsMs7amktN21+2FJzdF5kbvYLuyYfKXdXKpkfZJVvc0XLX8gaaZK8xAmVYkJy3 hwhOCQiTO6ZUpg6y+Ez9Fo9qD99ihYlmbCxBQYZxdyPhFAkD/2+tIVtfk1KauI7h2w 0rboiSLYcZLBBIycx9UZ/c0QVsBjiUZaTO5xRE4Yw8B/FN15qzo1ANrs8sjPHNhP+g NByXHDb9V0M3wOtvCHGVDXveeFDKPd9SQtCY55QGJCzx34J2b9hkYiGoVFz99dS7wL TY8gT0uhpgaqQ== From: Nathan Chancellor To: Herbert Xu , "David S. Miller" Cc: Russell King , Nick Desaulniers , Ard Biesheuvel , "Jason A. Donenfeld" , linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, clang-built-linux@googlegroups.com, Nathan Chancellor , stable@vger.kernel.org, Arnd Bergmann , Jessica Clarke Subject: [PATCH] crypto: arm/curve25519 - Move '.fpu' after '.arch' Date: Fri, 9 Apr 2021 15:11:55 -0700 Message-Id: <20210409221155.1113205-1-nathan@kernel.org> X-Mailer: git-send-email 2.31.1.189.g2e36527f23 MIME-Version: 1.0 X-Patchwork-Bot: notify Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org Debian's clang carries a patch that makes the default FPU mode 'vfp3-d16' instead of 'neon' for 'armv7-a' to avoid generating NEON instructions on hardware that does not support them: https://salsa.debian.org/pkg-llvm-team/llvm-toolchain/-/raw/5a61ca6f21b4ad8c6ac4970e5ea5a7b5b4486d22/debian/patches/clang-arm-default-vfp3-on-armv7a.patch https://bugs.debian.org/841474 https://bugs.debian.org/842142 https://bugs.debian.org/914268 This results in the following build error when clang's integrated assembler is used because the '.arch' directive overrides the '.fpu' directive: arch/arm/crypto/curve25519-core.S:25:2: error: instruction requires: NEON vmov.i32 q0, #1 ^ arch/arm/crypto/curve25519-core.S:26:2: error: instruction requires: NEON vshr.u64 q1, q0, #7 ^ arch/arm/crypto/curve25519-core.S:27:2: error: instruction requires: NEON vshr.u64 q0, q0, #8 ^ arch/arm/crypto/curve25519-core.S:28:2: error: instruction requires: NEON vmov.i32 d4, #19 ^ Shuffle the order of the '.arch' and '.fpu' directives so that the code builds regardless of the default FPU mode. This has been tested against both clang with and without Debian's patch and GCC. Cc: stable@vger.kernel.org Fixes: d8f1308a025f ("crypto: arm/curve25519 - wire up NEON implementation") Link: https://github.com/ClangBuiltLinux/continuous-integration2/issues/118 Reported-by: Arnd Bergmann Suggested-by: Arnd Bergmann Suggested-by: Jessica Clarke Signed-off-by: Nathan Chancellor --- arch/arm/crypto/curve25519-core.S | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/crypto/curve25519-core.S b/arch/arm/crypto/curve25519-core.S index be18af52e7dc..b697fa5d059a 100644 --- a/arch/arm/crypto/curve25519-core.S +++ b/arch/arm/crypto/curve25519-core.S @@ -10,8 +10,8 @@ #include .text -.fpu neon .arch armv7-a +.fpu neon .align 4 ENTRY(curve25519_neon) base-commit: e49d033bddf5b565044e2abe4241353959bc9120 -- 2.31.1.189.g2e36527f23