Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

mm: increase the default mlock limit from 32k to 64k

By default, non-privileged tasks can only mlock() a small amount of
memory to avoid a DoS attack by ordinary users. The Linux kernel
defaulted to 32k (on a 4k page size system) to accommodate the needs of
gpg.

However, newer gpg2 needs 64k in various circumstances and otherwise
fails miserably, see bnc#329675.

Change the default to 64k, and make it more agnostic to PAGE_SIZE.

Signed-off-by: Kurt Garloff <garloff@suse.de>
Signed-off-by: Nick Piggin <npiggin@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

Kurt Garloff and committed by
Linus Torvalds
08334222 e946217e

+2 -2
+2 -2
include/linux/resource.h
··· 59 59 #define _STK_LIM (8*1024*1024) 60 60 61 61 /* 62 - * GPG wants 32kB of mlocked memory, to make sure pass phrases 62 + * GPG2 wants 64kB of mlocked memory, to make sure pass phrases 63 63 * and other sensitive information are never written to disk. 64 64 */ 65 - #define MLOCK_LIMIT (8 * PAGE_SIZE) 65 + #define MLOCK_LIMIT ((PAGE_SIZE > 64*1024) ? PAGE_SIZE : 64*1024) 66 66 67 67 /* 68 68 * Due to binary compatibility, the actual resource numbers