mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Shaun Tancheff <shaun@tancheff.com>
To: Linux Kernel <linux-kernel@vger.kernel.org>
Cc: Shaun Tancheff <shaun@tancheff.com>,
	Shaun Tancheff <shaun.tancheff@seagate.com>
Subject: [PATCH] Change MPI alloc from GFP_KERNEL to GFP_ATOMIC
Date: Fri, 29 Jul 2016 12:40:39 -0500	[thread overview]
Message-ID: <1469814039-17703-1-git-send-email-shaun@tancheff.com> (raw)

Running Ubuntu 14.04 for testing against 4.8 merge window I am getting.

One quick fix is to change GFP_KERNEL to GFP_ATOMIC.

BUG: sleeping function called from invalid context at mm/slab.h:393
in_atomic(): 1, irqs_disabled(): 0, pid: 594, name: modprobe
no locks held by modprobe/594.
CPU: 1 PID: 594 Comm: modprobe Not tainted 4.7.0-zdm #64
Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS VirtualBox 12/01/2006
 0000000000000000 ffff8ef5d4e5b978 ffffffff8b5eded3 ffff8ef5d9021940
 ffffffff8bee5c08 ffff8ef5d4e5b9a0 ffffffff8b0b5109 ffffffff8bee5c08
 0000000000000189 0000000000000000 ffff8ef5d4e5b9c8 ffffffff8b0b5209
Call Trace:
 [<ffffffff8b5eded3>] dump_stack+0x85/0xc2
 [<ffffffff8b0b5109>] ___might_sleep+0x179/0x230
 [<ffffffff8b0b5209>] __might_sleep+0x49/0x80
 [<ffffffff8b222eca>] kmem_cache_alloc_trace+0x1ba/0x2f0
 [<ffffffff8b625180>] ? mpi_alloc+0x20/0x80
 [<ffffffff8b625180>] mpi_alloc+0x20/0x80
 [<ffffffff8b622ca7>] mpi_read_raw_from_sgl+0xc7/0x1d0
 [<ffffffff8b5a06e7>] rsa_verify+0x57/0xd0
 [<ffffffff8b5a0a90>] ? pkcs1pad_sg_set_buf+0x40/0xb0
 [<ffffffff8b5a0d2b>] pkcs1pad_verify+0xbb/0x100
 [<ffffffff8b5abb80>] public_key_verify_signature+0x1c0/0x2a0
 [<ffffffff8b0e25e0>] ? debug_check_no_locks_freed+0xd0/0x160
 [<ffffffff8b5abc75>] public_key_verify_signature_2+0x15/0x20
 [<ffffffff8b5ab8bc>] verify_signature+0x3c/0x50
 [<ffffffff8b5adc1a>] pkcs7_validate_trust+0x1fa/0x260
 [<ffffffff8b1ad5cd>] verify_pkcs7_signature+0x7d/0x100
 [<ffffffff8b12ebdc>] mod_verify_sig+0x7c/0xb0
 [<ffffffff8b12b890>] load_module+0x170/0x2ac0
 [<ffffffff8b25058d>] ? __vfs_read+0xbd/0x110
 [<ffffffff8b594b1d>] ? ima_post_read_file+0x7d/0xa0
 [<ffffffff8b2571f1>] ? kernel_read_file+0x191/0x1b0
 [<ffffffff8b12e433>] SYSC_finit_module+0xc3/0xf0
 [<ffffffff8b12e47e>] SyS_finit_module+0xe/0x10
 [<ffffffff8ba6fe80>] entry_SYSCALL_64_fastpath+0x23/0xc1

Signed-off-by: Shaun Tancheff <shaun.tancheff@seagate.com>
---
 lib/mpi/mpiutil.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/lib/mpi/mpiutil.c b/lib/mpi/mpiutil.c
index 314f4df..420ace3 100644
--- a/lib/mpi/mpiutil.c
+++ b/lib/mpi/mpiutil.c
@@ -31,7 +31,7 @@ MPI mpi_alloc(unsigned nlimbs)
 {
 	MPI a;
 
-	a = kmalloc(sizeof *a, GFP_KERNEL);
+	a = kmalloc(sizeof *a, GFP_ATOMIC);
 	if (!a)
 		return a;
 
@@ -61,7 +61,7 @@ mpi_ptr_t mpi_alloc_limb_space(unsigned nlimbs)
 	if (!len)
 		return NULL;
 
-	return kmalloc(len, GFP_KERNEL);
+	return kmalloc(len, GFP_ATOMIC);
 }
 
 void mpi_free_limb_space(mpi_ptr_t a)
@@ -91,14 +91,14 @@ int mpi_resize(MPI a, unsigned nlimbs)
 		return 0;	/* no need to do it */
 
 	if (a->d) {
-		p = kmalloc(nlimbs * sizeof(mpi_limb_t), GFP_KERNEL);
+		p = kmalloc(nlimbs * sizeof(mpi_limb_t), GFP_ATOMIC);
 		if (!p)
 			return -ENOMEM;
 		memcpy(p, a->d, a->alloced * sizeof(mpi_limb_t));
 		kzfree(a->d);
 		a->d = p;
 	} else {
-		a->d = kzalloc(nlimbs * sizeof(mpi_limb_t), GFP_KERNEL);
+		a->d = kzalloc(nlimbs * sizeof(mpi_limb_t), GFP_ATOMIC);
 		if (!a->d)
 			return -ENOMEM;
 	}
-- 
2.8.1

                 reply	other threads:[~2016-07-29 17:49 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=1469814039-17703-1-git-send-email-shaun@tancheff.com \
    --to=shaun@tancheff.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=shaun.tancheff@seagate.com \
    /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®