mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Adam J. Richter" <adam@yggdrasil.com>
To: jmorris@intercode.com.au, davem@redhat.com, astor@fast.no
Cc: linux-kernel@vger.kernel.org
Subject: Patch(2.5.50): Simplify crypto memory allocation
Date: Sun, 8 Dec 2002 01:27:27 -0800	[thread overview]
Message-ID: <20021208012727.A24577@baldur.yggdrasil.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 835 bytes --]

	The following patch deletes the unused
crypto_tfm.crt_work_block field and combines the remaining
two kmallocs done by crypto_alloc_tfm into one, a net
deletion of 25 lines.

	I've only verified that the kernel and the crpypto modules
still build.  I don't currently use this code, although I'm
considering making a version of loop.c which would, which is why I
noticed this.

	Anyhow, if this patch turns out to work and looks OK, then
please integrate, queue it for Linus, etc., or let me know if you
would prefer that you or I follow some other course of action.

-- 
Adam J. Richter     __     ______________   575 Oroville Road
adam@yggdrasil.com     \ /                  Milpitas, California 95035
+1 408 309-6081         | g g d r a s i l   United States of America
                         "Free Software For The Rest Of Us."

[-- Attachment #2: crypt.diff --]
[-- Type: text/plain, Size: 1747 bytes --]

--- linux-2.5.50/include/linux/crypto.h	2002-11-27 14:35:54.000000000 -0800
+++ linux/include/linux/crypto.h	2002-12-08 01:06:24.000000000 -0800
@@ -161,7 +161,6 @@
 struct crypto_tfm {
 
 	void *crt_ctx;
-	void *crt_work_block;
 	u32 crt_flags;
 	
 	union {
--- linux-2.5.50/crypto/api.c	2002-11-27 14:36:21.000000000 -0800
+++ linux/crypto/api.c	2002-12-08 01:06:35.000000000 -0800
@@ -124,44 +124,26 @@
 	if (alg == NULL)
 		goto out;
 	
-	tfm = kmalloc(sizeof(*tfm), GFP_KERNEL);
+	tfm = kmalloc(sizeof(*tfm) + alg->cra_ctxsize, GFP_KERNEL);
 	if (tfm == NULL)
 		goto out_put;
 
 	memset(tfm, 0, sizeof(*tfm));
 	
-	if (alg->cra_ctxsize) {
-		tfm->crt_ctx = kmalloc(alg->cra_ctxsize, GFP_KERNEL);
-		if (tfm->crt_ctx == NULL)
-			goto out_free_tfm;
-	}
+	tfm->crt_ctx = (void*) &tfm[1];
 
 	tfm->__crt_alg = alg;
 	
-	if (alg->cra_blocksize) {
-		tfm->crt_work_block = kmalloc(alg->cra_blocksize + 1,
-					      GFP_KERNEL);
-		if (tfm->crt_work_block == NULL)
-			goto out_free_ctx;
-	}
-
 	if (crypto_init_flags(tfm, flags))
-		goto out_free_work_block;
+		goto out_free_tfm;
 		
 	if (crypto_init_ops(tfm)) {
 		crypto_exit_ops(tfm);
-		goto out_free_ctx;
+		goto out_free_tfm;
 	}
 
 	goto out;
 
-out_free_work_block:
-	if (tfm->__crt_alg->cra_blocksize)
-		kfree(tfm->crt_work_block);
-
-out_free_ctx:
-	if (tfm->__crt_alg->cra_ctxsize)
-		kfree(tfm->crt_ctx);
 out_free_tfm:
 	kfree(tfm);
 	tfm = NULL;
@@ -173,12 +155,6 @@
 
 void crypto_free_tfm(struct crypto_tfm *tfm)
 {
-	if (tfm->__crt_alg->cra_ctxsize)
-		kfree(tfm->crt_ctx);
-		
-	if (tfm->__crt_alg->cra_blocksize)
-		kfree(tfm->crt_work_block);
-		
 	if (crypto_tfm_alg_type(tfm) == CRYPTO_ALG_TYPE_CIPHER)
 		if (tfm->crt_cipher.cit_iv)
 			kfree(tfm->crt_cipher.cit_iv);

             reply	other threads:[~2002-12-08  9:23 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-12-08  9:27 Adam J. Richter [this message]
2002-12-08 10:55 ` James Morris
2002-12-08 22:31   ` David S. Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20021208012727.A24577@baldur.yggdrasil.com \
    --to=adam@yggdrasil.com \
    --cc=astor@fast.no \
    --cc=davem@redhat.com \
    --cc=jmorris@intercode.com.au \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®