From patchwork Thu Apr 28 14:10:19 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandru Ardelean X-Patchwork-Id: 616284 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from arrakis.dune.hu (caladan.dune.hu [78.24.191.180]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3qwdz3587Cz9t79 for ; Fri, 29 Apr 2016 00:10:55 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=cSr/MDre; dkim-atps=neutral Received: from arrakis.dune.hu (localhost [127.0.0.1]) by arrakis.dune.hu (Postfix) with ESMTP id 9CCF4B807D1; Thu, 28 Apr 2016 16:10:27 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on arrakis.dune.hu X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.1 Received: from arrakis.dune.hu (localhost [127.0.0.1]) by arrakis.dune.hu (Postfix) with ESMTP; Thu, 28 Apr 2016 16:10:27 +0200 (CEST) Received: from arrakis.dune.hu (localhost [127.0.0.1]) by arrakis.dune.hu (Postfix) with ESMTP id 6BE4AB807C1 for ; Thu, 28 Apr 2016 16:10:25 +0200 (CEST) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 CL_IP_EQ_HELO_IP=-2 (check from: .gmail. - helo: .mail-lf0-f68.google. - helo-domain: .google.) FROM/MX_MATCHES_HELO(DOMAIN)=-2; rate: -7 Received: from mail-lf0-f68.google.com (mail-lf0-f68.google.com [209.85.215.68]) by arrakis.dune.hu (Postfix) with ESMTPS for ; Thu, 28 Apr 2016 16:10:23 +0200 (CEST) Received: by mail-lf0-f68.google.com with SMTP id u64so13850778lff.2 for ; Thu, 28 Apr 2016 07:10:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id; bh=EVNKvw8idCDI2br6LjyOLy9Mbqr80r5iRW6Zqm++0U0=; b=cSr/MDrevTLbnLBPOsSg0QROKa2fjkyWD5yeg1h9XBPwVS7GFcDFmsmUCzW0YsyAZ2 ejf/KdKSYekJmU3z0ARkcgJKuWXZX/zYsiSaFRUtOFcgOUBbBznaBU78DCf4wLG1OHML ilWT1pMnCE+ScZfEoK8dv1WHcmGVhpRZXaTuE3S7ZRchJq3S4NRC4Rj7tZIItyFiatXx pLfEGchabQL8oeS9wegzwYBXt9PCHqFHP5LUn+jMfpvwpjFOyf5PTNzSoxQAla3Q8m9q HXnRdWylSGsrYWmXrgFzDN/oKI7He4+6Z5kiRGMmzCkUlmHFubW57rZyEkCxNYTd+3+h dlpA== 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=EVNKvw8idCDI2br6LjyOLy9Mbqr80r5iRW6Zqm++0U0=; b=bBmmEbMXPMBRvS1N5KzFJzNd8iTNj5V8TvztADLloMm/hua11RZenVjzWIEUVqeiKf CgjMEvwSLgYLp7IJFj90McJ32ZT6jH3HwD/WQ+VyXR7aJ2oxLnoIG9SADzlROF8fG6n3 SL673S3PdXAZJKtG8t/LroZSniEJtyfvlUqE3Q1K4kGA+SiEO4/34YCdo6WNnI64x2AA CgVi6zxAA76IxdtjxeEtLVbKy7f67IwuXpc4BmsXc5zynyQ89gPirLVVs6PPfA6m8bq5 zxKyNFhdY1Yp/m/yss+Yq0KHkeKbbWE8Mc1UPqO/SXnsReua0/jBVXXZm2cBMYBTmI1J WLcA== X-Gm-Message-State: AOPr4FVm8AvV8qPVWHZ6DK7HcNIcDEj7or+2KD4IOnRmaY6LHQcMOQ276hc7wU83jyt5hg== X-Received: by 10.28.20.144 with SMTP id 138mr16708974wmu.103.1461852623297; Thu, 28 Apr 2016 07:10:23 -0700 (PDT) Received: from localhost.localdomain ([5.2.198.78]) by smtp.gmail.com with ESMTPSA id i1sm2475597wjd.38.2016.04.28.07.10.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 28 Apr 2016 07:10:22 -0700 (PDT) From: Alexandru Ardelean To: openwrt-devel@lists.openwrt.org Date: Thu, 28 Apr 2016 17:10:19 +0300 Message-Id: <1461852619-29288-1-git-send-email-ardeleanalex@gmail.com> X-Mailer: git-send-email 2.8.1 Subject: [OpenWrt-Devel] [PATCH] target/linux/mpc85xx: fix talitos crypto driver init X-BeenThere: openwrt-devel@lists.openwrt.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: OpenWrt Development List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: openwrt-devel-bounces@lists.openwrt.org Sender: "openwrt-devel" Crypto hash algorithms must provide the statesize for kernel 4.2+ Referencing commit in the kernel: commit 8996eafdcbad149ac0f772fb1649fbb75c482a6a Author: Russell King Date: Fri Oct 9 20:43:33 2015 +0100 crypto: ahash - ensure statesize is non-zero Unlike shash algorithms, ahash drivers must implement export and import as their descriptors may contain hardware state and cannot be exported as is. Unfortunately some ahash drivers did not provide them and end up causing crashes with algif_hash. This patch adds a check to prevent these drivers from registering ahash algorithms until they are fixed. Cc: stable@vger.kernel.org Signed-off-by: Russell King Signed-off-by: Herbert Xu Signed-off-by: Alexandru Ardelean --- .../302-add-statesize-to-talitos-crypto-driver.sh | 100 +++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 target/linux/mpc85xx/patches-4.4/302-add-statesize-to-talitos-crypto-driver.sh diff --git a/target/linux/mpc85xx/patches-4.4/302-add-statesize-to-talitos-crypto-driver.sh b/target/linux/mpc85xx/patches-4.4/302-add-statesize-to-talitos-crypto-driver.sh new file mode 100644 index 0000000..4d77c19 --- /dev/null +++ b/target/linux/mpc85xx/patches-4.4/302-add-statesize-to-talitos-crypto-driver.sh @@ -0,0 +1,100 @@ +diff --git a/drivers/crypto/talitos.c b/drivers/crypto/talitos.c +index b6f9f42..b786b21 100644 +--- a/drivers/crypto/talitos.c ++++ b/drivers/crypto/talitos.c +@@ -2334,6 +2334,7 @@ static struct talitos_alg_template driver_algs[] = { + { .type = CRYPTO_ALG_TYPE_AHASH, + .alg.hash = { + .halg.digestsize = MD5_DIGEST_SIZE, ++ .halg.statesize = sizeof(struct talitos_ahash_req_ctx), + .halg.base = { + .cra_name = "md5", + .cra_driver_name = "md5-talitos", +@@ -2349,6 +2350,7 @@ static struct talitos_alg_template driver_algs[] = { + { .type = CRYPTO_ALG_TYPE_AHASH, + .alg.hash = { + .halg.digestsize = SHA1_DIGEST_SIZE, ++ .halg.statesize = sizeof(struct talitos_ahash_req_ctx), + .halg.base = { + .cra_name = "sha1", + .cra_driver_name = "sha1-talitos", +@@ -2364,6 +2366,7 @@ static struct talitos_alg_template driver_algs[] = { + { .type = CRYPTO_ALG_TYPE_AHASH, + .alg.hash = { + .halg.digestsize = SHA224_DIGEST_SIZE, ++ .halg.statesize = sizeof(struct talitos_ahash_req_ctx), + .halg.base = { + .cra_name = "sha224", + .cra_driver_name = "sha224-talitos", +@@ -2379,6 +2382,7 @@ static struct talitos_alg_template driver_algs[] = { + { .type = CRYPTO_ALG_TYPE_AHASH, + .alg.hash = { + .halg.digestsize = SHA256_DIGEST_SIZE, ++ .halg.statesize = sizeof(struct talitos_ahash_req_ctx), + .halg.base = { + .cra_name = "sha256", + .cra_driver_name = "sha256-talitos", +@@ -2394,6 +2398,7 @@ static struct talitos_alg_template driver_algs[] = { + { .type = CRYPTO_ALG_TYPE_AHASH, + .alg.hash = { + .halg.digestsize = SHA384_DIGEST_SIZE, ++ .halg.statesize = sizeof(struct talitos_ahash_req_ctx), + .halg.base = { + .cra_name = "sha384", + .cra_driver_name = "sha384-talitos", +@@ -2409,6 +2414,7 @@ static struct talitos_alg_template driver_algs[] = { + { .type = CRYPTO_ALG_TYPE_AHASH, + .alg.hash = { + .halg.digestsize = SHA512_DIGEST_SIZE, ++ .halg.statesize = sizeof(struct talitos_ahash_req_ctx), + .halg.base = { + .cra_name = "sha512", + .cra_driver_name = "sha512-talitos", +@@ -2424,6 +2430,7 @@ static struct talitos_alg_template driver_algs[] = { + { .type = CRYPTO_ALG_TYPE_AHASH, + .alg.hash = { + .halg.digestsize = MD5_DIGEST_SIZE, ++ .halg.statesize = sizeof(struct talitos_ahash_req_ctx), + .halg.base = { + .cra_name = "hmac(md5)", + .cra_driver_name = "hmac-md5-talitos", +@@ -2439,6 +2446,7 @@ static struct talitos_alg_template driver_algs[] = { + { .type = CRYPTO_ALG_TYPE_AHASH, + .alg.hash = { + .halg.digestsize = SHA1_DIGEST_SIZE, ++ .halg.statesize = sizeof(struct talitos_ahash_req_ctx), + .halg.base = { + .cra_name = "hmac(sha1)", + .cra_driver_name = "hmac-sha1-talitos", +@@ -2454,6 +2462,7 @@ static struct talitos_alg_template driver_algs[] = { + { .type = CRYPTO_ALG_TYPE_AHASH, + .alg.hash = { + .halg.digestsize = SHA224_DIGEST_SIZE, ++ .halg.statesize = sizeof(struct talitos_ahash_req_ctx), + .halg.base = { + .cra_name = "hmac(sha224)", + .cra_driver_name = "hmac-sha224-talitos", +@@ -2469,6 +2478,7 @@ static struct talitos_alg_template driver_algs[] = { + { .type = CRYPTO_ALG_TYPE_AHASH, + .alg.hash = { + .halg.digestsize = SHA256_DIGEST_SIZE, ++ .halg.statesize = sizeof(struct talitos_ahash_req_ctx), + .halg.base = { + .cra_name = "hmac(sha256)", + .cra_driver_name = "hmac-sha256-talitos", +@@ -2484,6 +2494,7 @@ static struct talitos_alg_template driver_algs[] = { + { .type = CRYPTO_ALG_TYPE_AHASH, + .alg.hash = { + .halg.digestsize = SHA384_DIGEST_SIZE, ++ .halg.statesize = sizeof(struct talitos_ahash_req_ctx), + .halg.base = { + .cra_name = "hmac(sha384)", + .cra_driver_name = "hmac-sha384-talitos", +@@ -2499,6 +2510,7 @@ static struct talitos_alg_template driver_algs[] = { + { .type = CRYPTO_ALG_TYPE_AHASH, + .alg.hash = { + .halg.digestsize = SHA512_DIGEST_SIZE, ++ .halg.statesize = sizeof(struct talitos_ahash_req_ctx), + .halg.base = { + .cra_name = "hmac(sha512)", + .cra_driver_name = "hmac-sha512-talitos",