summaryrefslogtreecommitdiffstats
path: root/mm/page_alloc.c
diff options
context:
space:
mode:
authorKees Cook <keescook@chromium.org>2016-10-19 00:08:04 +0200
committerKees Cook <keescook@chromium.org>2016-10-31 11:30:41 -0700
commit58bea4144d235cee5bb51203b032ddafd6d1cf8d (patch)
tree01256e5ed4f34f736e83b841ca5ef9893cc479f8 /mm/page_alloc.c
parentda7389ac6c83e7aa8b04ebe5ba546df2a7873c5c (diff)
downloadlinux-stable-58bea4144d235cee5bb51203b032ddafd6d1cf8d.tar.gz
linux-stable-58bea4144d235cee5bb51203b032ddafd6d1cf8d.tar.bz2
linux-stable-58bea4144d235cee5bb51203b032ddafd6d1cf8d.zip
latent_entropy: Fix wrong gcc code generation with 64 bit variables
The stack frame size could grow too large when the plugin used long long on 32-bit architectures when the given function had too many basic blocks. The gcc warning was: drivers/pci/hotplug/ibmphp_ebda.c: In function 'ibmphp_access_ebda': drivers/pci/hotplug/ibmphp_ebda.c:409:1: warning: the frame size of 1108 bytes is larger than 1024 bytes [-Wframe-larger-than=] This switches latent_entropy from u64 to unsigned long. Thanks to PaX Team and Emese Revfy for the patch. Signed-off-by: Kees Cook <keescook@chromium.org>
Diffstat (limited to 'mm/page_alloc.c')
-rw-r--r--mm/page_alloc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 2b3bf6767d54..1b10c14de5db 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -92,7 +92,7 @@ int _node_numa_mem_[MAX_NUMNODES];
#endif
#ifdef CONFIG_GCC_PLUGIN_LATENT_ENTROPY
-volatile u64 latent_entropy __latent_entropy;
+volatile unsigned long latent_entropy __latent_entropy;
EXPORT_SYMBOL(latent_entropy);
#endif