diff options
author | Kees Cook <keescook@chromium.org> | 2016-10-19 00:08:04 +0200 |
---|---|---|
committer | Kees Cook <keescook@chromium.org> | 2016-10-31 11:30:41 -0700 |
commit | 58bea4144d235cee5bb51203b032ddafd6d1cf8d (patch) | |
tree | 01256e5ed4f34f736e83b841ca5ef9893cc479f8 /mm/page_alloc.c | |
parent | da7389ac6c83e7aa8b04ebe5ba546df2a7873c5c (diff) | |
download | linux-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.c | 2 |
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 |