From patchwork Mon Aug 4 10:34:28 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ard Biesheuvel X-Patchwork-Id: 4669441 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 618E0C0338 for ; Mon, 4 Aug 2014 10:38:22 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 6D2D2201CE for ; Mon, 4 Aug 2014 10:38:21 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 12B5E200E6 for ; Mon, 4 Aug 2014 10:38:20 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1XEFbZ-0000sT-7z; Mon, 04 Aug 2014 10:35:01 +0000 Received: from mail-we0-f176.google.com ([74.125.82.176]) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1XEFbW-0000lU-Oi for linux-arm-kernel@lists.infradead.org; Mon, 04 Aug 2014 10:34:59 +0000 Received: by mail-we0-f176.google.com with SMTP id q58so7437023wes.7 for ; Mon, 04 Aug 2014 03:34:36 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=Ne4DqhAX8IaHPEc14WKKBCp7OvgW/IbYavC17x9ELyM=; b=hECXFPs7Pz1rE6oludlMLueR42AX2rzVMEMzrdxT7pzVFlZSg9SsQtvUQ8N8VBi1RA bXH0gIPhWW68hMkbAq5PXB4/ksyX7UUYr43DHjlpGfnfUhCQvLkSwzYvtDqSeWQnwy35 S0YPTHW1NaJ4usspZ5IeBvI5ttoNMfIfM9+Nlx/bzPhxpJVpUeTLscZU/yfwppdck7CC 0ParN9wWzD+K7sRZV6LjE5X7mXkCaWcuhzs2CwQjsdk1DN6I/MDC8Xr8ILDjHWoSnmTV gT+3qirPJlIQZAg8I3Mi8udKtPdINmJ81bmJYil3stUT8rz171/S0c2VFdBMXzYLAb0o MCxA== X-Gm-Message-State: ALoCoQnvGj4RMTeuLoqpqigSq9tpubss4nHXMfMs8Y9jaRaH95aDDIsLNzO587+oW2tGVTwQjm43 X-Received: by 10.180.184.99 with SMTP id et3mr29061233wic.31.1407148476236; Mon, 04 Aug 2014 03:34:36 -0700 (PDT) Received: from ards-macbook-pro.local ([188.252.229.85]) by mx.google.com with ESMTPSA id di7sm42549064wjb.34.2014.08.04.03.34.34 for (version=TLSv1.1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Mon, 04 Aug 2014 03:34:35 -0700 (PDT) From: Ard Biesheuvel To: linux-arm-kernel@lists.infradead.org, linux@arm.linux.org.uk, jussi.kivilinna@iki.fi Subject: [PATCH 1/2] ARM: crypto: enable NEON SHA-1 for big endian Date: Mon, 4 Aug 2014 12:34:28 +0200 Message-Id: <1407148469-26190-1-git-send-email-ard.biesheuvel@linaro.org> X-Mailer: git-send-email 1.8.3.2 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20140804_033458_958130_6FF0B52B X-CRM114-Status: GOOD ( 11.69 ) X-Spam-Score: -0.7 (/) Cc: Ard Biesheuvel , linux-crypto@vger.kernel.org, herbert@gondor.apana.org.au X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP This tweaks the SHA-1 NEON code slightly so it works correctly under big endian, and removes the Kconfig condition preventing it from being selected if CONFIG_CPU_BIG_ENDIAN is set. Signed-off-by: Ard Biesheuvel --- arch/arm/crypto/sha1-armv7-neon.S | 8 ++++---- crypto/Kconfig | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/arch/arm/crypto/sha1-armv7-neon.S b/arch/arm/crypto/sha1-armv7-neon.S index 50013c0e2864..49179e0653e6 100644 --- a/arch/arm/crypto/sha1-armv7-neon.S +++ b/arch/arm/crypto/sha1-armv7-neon.S @@ -150,9 +150,9 @@ #define W_PRECALC_00_15() \ add RWK, sp, #(WK_offs(0)); \ \ - vld1.32 {tmp0, tmp1}, [RDATA]!; \ + vld1.8 {tmp0, tmp1}, [RDATA]!; \ vrev32.8 W0, tmp0; /* big => little */ \ - vld1.32 {tmp2, tmp3}, [RDATA]!; \ + vld1.8 {tmp2, tmp3}, [RDATA]!; \ vadd.u32 tmp0, W0, curK; \ vrev32.8 W7, tmp1; /* big => little */ \ vrev32.8 W6, tmp2; /* big => little */ \ @@ -164,7 +164,7 @@ vst1.32 {tmp2, tmp3}, [RWK]; \ #define WPRECALC_00_15_0(i,W,W_m04,W_m08,W_m12,W_m16,W_m20,W_m24,W_m28) \ - vld1.32 {tmp0, tmp1}, [RDATA]!; \ + vld1.8 {tmp0, tmp1}, [RDATA]!; \ #define WPRECALC_00_15_1(i,W,W_m04,W_m08,W_m12,W_m16,W_m20,W_m24,W_m28) \ add RWK, sp, #(WK_offs(0)); \ @@ -173,7 +173,7 @@ vrev32.8 W0, tmp0; /* big => little */ \ #define WPRECALC_00_15_3(i,W,W_m04,W_m08,W_m12,W_m16,W_m20,W_m24,W_m28) \ - vld1.32 {tmp2, tmp3}, [RDATA]!; \ + vld1.8 {tmp2, tmp3}, [RDATA]!; \ #define WPRECALC_00_15_4(i,W,W_m04,W_m08,W_m12,W_m16,W_m20,W_m24,W_m28) \ vadd.u32 tmp0, W0, curK; \ diff --git a/crypto/Kconfig b/crypto/Kconfig index 749b1e05c490..deef2a4b6559 100644 --- a/crypto/Kconfig +++ b/crypto/Kconfig @@ -542,7 +542,7 @@ config CRYPTO_SHA1_ARM config CRYPTO_SHA1_ARM_NEON tristate "SHA1 digest algorithm (ARM NEON)" - depends on ARM && KERNEL_MODE_NEON && !CPU_BIG_ENDIAN + depends on ARM && KERNEL_MODE_NEON select CRYPTO_SHA1_ARM select CRYPTO_SHA1 select CRYPTO_HASH