Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp225159imm; Wed, 18 Jul 2018 00:44:15 -0700 (PDT) X-Google-Smtp-Source: AAOMgpdFSfbe17roYXwiT47J1sq1oo8PDJosJbCswt/dViHotRujByKgIJ60ZPm90EeM3+A1jMfD X-Received: by 2002:a63:b504:: with SMTP id y4-v6mr4813981pge.247.1531899855619; Wed, 18 Jul 2018 00:44:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1531899855; cv=none; d=google.com; s=arc-20160816; b=SsfTs5vKa7CpeIYbHVjKWKTiNlONpa8sjsohKAk6el8sahGjl2sp6Ixbz+Gh9rlxmk 2oklbtMPxyqa9n7j1wQ28rplYhpC/6Uke0h+VWT24wCMuUfkzlqC3ldpCgimsFlCHhyK 4bXB28rcbWKg0DBMioJS6uZyNsQO/J9eSfZnD/yB3ejnd/J4u7QZVzcUuX2pz3GoYMMh UYhDEY/1r0Uxyza6QRVTqnA6C0PDuNfltDrek2vcjBm9tp42i7f9FIIt1K98GAq2ZVbe I+/CsdPD+1z6KM2QB+vI5pyaquOCv4OqnLA5U1u72kpZIRi1XDvxdasXIumwsafsO2dK pYKA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:arc-authentication-results; bh=k9E0lsjtgKSgfKZxZV4CDWx1J+IYRWZSnGFq91koiuA=; b=GZjAWYfx3W3HzmWI+FAQtTRkiiUk9xF61FpMcHnlYijd8atZ+bfSJaPWX2khco6Uv7 2qn80FackZSzypf5cVixbDv5bswfAJd/TyW6i31v/jp4eVcdZEEMV9Om0X9XWO4txQ1L GS8E4psLuSJ98KG76AEQmHVQ1++o9UKky2PmKC4In4t371DtyXVyjDK71C92+Y2JhjDv RupEq7+ZjmWndZxtC3otOI8IsgK9I7GHJd7q4HjLBnT15TsAcCAbzJveze1moUfdfG+8 J/uVWeUqq/DEUMdMv1ORnlpK1dN9cP4fMZ5tlsPYvKt2b03rQ9ObZ7AwP0aaAZfSPJH9 aoTw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a7-v6si2897337pfg.200.2018.07.18.00.44.00; Wed, 18 Jul 2018 00:44:15 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730094AbeGRITS (ORCPT + 99 others); Wed, 18 Jul 2018 04:19:18 -0400 Received: from szxga04-in.huawei.com ([45.249.212.190]:9645 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1729010AbeGRITR (ORCPT ); Wed, 18 Jul 2018 04:19:17 -0400 Received: from DGGEMS411-HUB.china.huawei.com (unknown [172.30.72.58]) by Forcepoint Email with ESMTP id 8998ED424EC39; Wed, 18 Jul 2018 15:42:28 +0800 (CST) Received: from linux-ibm.site (10.175.102.37) by DGGEMS411-HUB.china.huawei.com (10.3.19.211) with Microsoft SMTP Server id 14.3.382.0; Wed, 18 Jul 2018 15:42:23 +0800 From: Xiongfeng Wang To: , , CC: , , , , , Subject: [PATCH 3/5] crypto: gcm - use template array registering API to simplify the code Date: Wed, 18 Jul 2018 15:30:53 +0800 Message-ID: <1531899055-29362-4-git-send-email-wangxiongfeng2@huawei.com> X-Mailer: git-send-email 1.7.12.4 In-Reply-To: <1531899055-29362-1-git-send-email-wangxiongfeng2@huawei.com> References: <1531899055-29362-1-git-send-email-wangxiongfeng2@huawei.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.175.102.37] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Use crypto template array registering API to simplify the code. Signed-off-by: Xiongfeng Wang --- crypto/gcm.c | 76 +++++++++++++++++++++--------------------------------------- 1 file changed, 26 insertions(+), 50 deletions(-) diff --git a/crypto/gcm.c b/crypto/gcm.c index 0ad879e..b180536 100644 --- a/crypto/gcm.c +++ b/crypto/gcm.c @@ -727,12 +727,6 @@ static int crypto_gcm_create(struct crypto_template *tmpl, struct rtattr **tb) ctr_name, "ghash"); } -static struct crypto_template crypto_gcm_tmpl = { - .name = "gcm", - .create = crypto_gcm_create, - .module = THIS_MODULE, -}; - static int crypto_gcm_base_create(struct crypto_template *tmpl, struct rtattr **tb) { @@ -756,12 +750,6 @@ static int crypto_gcm_base_create(struct crypto_template *tmpl, ctr_name, ghash_name); } -static struct crypto_template crypto_gcm_base_tmpl = { - .name = "gcm_base", - .create = crypto_gcm_base_create, - .module = THIS_MODULE, -}; - static int crypto_rfc4106_setkey(struct crypto_aead *parent, const u8 *key, unsigned int keylen) { @@ -989,12 +977,6 @@ static int crypto_rfc4106_create(struct crypto_template *tmpl, goto out; } -static struct crypto_template crypto_rfc4106_tmpl = { - .name = "rfc4106", - .create = crypto_rfc4106_create, - .module = THIS_MODULE, -}; - static int crypto_rfc4543_setkey(struct crypto_aead *parent, const u8 *key, unsigned int keylen) { @@ -1231,10 +1213,29 @@ static int crypto_rfc4543_create(struct crypto_template *tmpl, goto out; } -static struct crypto_template crypto_rfc4543_tmpl = { - .name = "rfc4543", - .create = crypto_rfc4543_create, - .module = THIS_MODULE, +#define GCM_TEMPLATE_NUM 4 + +static struct crypto_template crypto_gcm_tmpl[GCM_TEMPLATE_NUM] = { + { + .name = "gcm_base", + .create = crypto_gcm_base_create, + .module = THIS_MODULE, + }, + { + .name = "gcm", + .create = crypto_gcm_create, + .module = THIS_MODULE, + }, + { + .name = "rfc4106", + .create = crypto_rfc4106_create, + .module = THIS_MODULE, + }, + { + .name = "rfc4543", + .create = crypto_rfc4543_create, + .module = THIS_MODULE, + }, }; static int __init crypto_gcm_module_init(void) @@ -1247,42 +1248,17 @@ static int __init crypto_gcm_module_init(void) sg_init_one(&gcm_zeroes->sg, gcm_zeroes->buf, sizeof(gcm_zeroes->buf)); - err = crypto_register_template(&crypto_gcm_base_tmpl); - if (err) - goto out; - - err = crypto_register_template(&crypto_gcm_tmpl); + err = crypto_register_template_array(crypto_gcm_tmpl, GCM_TEMPLATE_NUM); if (err) - goto out_undo_base; + kfree(gcm_zeroes); - err = crypto_register_template(&crypto_rfc4106_tmpl); - if (err) - goto out_undo_gcm; - - err = crypto_register_template(&crypto_rfc4543_tmpl); - if (err) - goto out_undo_rfc4106; - - return 0; - -out_undo_rfc4106: - crypto_unregister_template(&crypto_rfc4106_tmpl); -out_undo_gcm: - crypto_unregister_template(&crypto_gcm_tmpl); -out_undo_base: - crypto_unregister_template(&crypto_gcm_base_tmpl); -out: - kfree(gcm_zeroes); return err; } static void __exit crypto_gcm_module_exit(void) { kfree(gcm_zeroes); - crypto_unregister_template(&crypto_rfc4543_tmpl); - crypto_unregister_template(&crypto_rfc4106_tmpl); - crypto_unregister_template(&crypto_gcm_tmpl); - crypto_unregister_template(&crypto_gcm_base_tmpl); + crypto_unregister_template_array(crypto_gcm_tmpl, GCM_TEMPLATE_NUM); } module_init(crypto_gcm_module_init); -- 1.7.12.4