From patchwork Tue Sep 18 03:01:44 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Miller X-Patchwork-Id: 184595 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id B43C22C0083 for ; Tue, 18 Sep 2012 13:01:46 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932371Ab2IRDBp (ORCPT ); Mon, 17 Sep 2012 23:01:45 -0400 Received: from shards.monkeyblade.net ([149.20.54.216]:36103 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932121Ab2IRDBp (ORCPT ); Mon, 17 Sep 2012 23:01:45 -0400 Received: from localhost (cpe-66-108-116-58.nyc.res.rr.com [66.108.116.58]) by shards.monkeyblade.net (Postfix) with ESMTPSA id 47D8C587E10 for ; Mon, 17 Sep 2012 20:01:47 -0700 (PDT) Date: Mon, 17 Sep 2012 23:01:44 -0400 (EDT) Message-Id: <20120917.230144.383780203829176979.davem@davemloft.net> To: sparclinux@vger.kernel.org Subject: [PATCH] sparc64: Fix IV handling bug in des_sparc64_cbc_decrypt From: David Miller X-Mailer: Mew version 6.5 on Emacs 24.1 / Mule 6.0 (HANACHIRUSATO) Mime-Version: 1.0 Sender: sparclinux-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: sparclinux@vger.kernel.org The IV wasn't being propagated properly past the first loop iteration. This bug lived only because the crypto layer tests for cbc(des) do not have any cases that go more than one loop. Signed-off-by: David S. Miller --- arch/sparc/crypto/des_asm.S | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/sparc/crypto/des_asm.S b/arch/sparc/crypto/des_asm.S index a7da935..30b6e90 100644 --- a/arch/sparc/crypto/des_asm.S +++ b/arch/sparc/crypto/des_asm.S @@ -168,6 +168,7 @@ ENTRY(des_sparc64_cbc_decrypt) DES_ROUND(28, 30, 32, 32) DES_IIP(32, 32) fxor %f32, %f34, %f32 + fsrc2 %f36, %f34 std %f32, [%o1 + 0x00] add %o0, 0x08, %o0 subcc %o2, 0x08, %o2