From: Linus Torvalds Date: Sat, 15 Oct 2016 17:03:15 +0000 (-0700) Subject: Merge tag 'gcc-plugins-v4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git... X-Git-Tag: v4.9-rc1~2 X-Git-Url: http://git.cascardo.info/?p=cascardo%2Flinux.git;a=commitdiff_plain;h=9ffc66941df278c9f4df979b6bcf6c6ddafedd16 Merge tag 'gcc-plugins-v4.9-rc1' of git://git./linux/kernel/git/kees/linux Pull gcc plugins update from Kees Cook: "This adds a new gcc plugin named "latent_entropy". It is designed to extract as much possible uncertainty from a running system at boot time as possible, hoping to capitalize on any possible variation in CPU operation (due to runtime data differences, hardware differences, SMP ordering, thermal timing variation, cache behavior, etc). At the very least, this plugin is a much more comprehensive example for how to manipulate kernel code using the gcc plugin internals" * tag 'gcc-plugins-v4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux: latent_entropy: Mark functions with __latent_entropy gcc-plugins: Add latent_entropy plugin --- 9ffc66941df278c9f4df979b6bcf6c6ddafedd16 diff --cc include/linux/init.h index 024a0b5b3ed0,1e5c131d5c9a..e30104ceb86d --- a/include/linux/init.h +++ b/include/linux/init.h @@@ -39,9 -39,9 +39,9 @@@ /* These are for everybody (although not all archs will actually discard it in modules) */ - #define __init __section(.init.text) __cold notrace + #define __init __section(.init.text) __cold notrace __latent_entropy #define __initdata __section(.init.data) -#define __initconst __constsection(.init.rodata) +#define __initconst __section(.init.rodata) #define __exitdata __section(.exit.data) #define __exit_call __used __section(.exitcall.exit) @@@ -75,12 -86,13 +75,13 @@@ #define __exit __section(.exit.text) __exitused __cold notrace /* Used for MEMORY_HOTPLUG */ - #define __meminit __section(.meminit.text) __cold notrace + #define __meminit __section(.meminit.text) __cold notrace \ + __latent_entropy #define __meminitdata __section(.meminit.data) -#define __meminitconst __constsection(.meminit.rodata) +#define __meminitconst __section(.meminit.rodata) #define __memexit __section(.memexit.text) __exitused __cold notrace #define __memexitdata __section(.memexit.data) -#define __memexitconst __constsection(.memexit.rodata) +#define __memexitconst __section(.memexit.rodata) /* For assembly routines */ #define __HEAD .section ".head.text","ax"