Commit 92080309 authored by Sam Ravnborg's avatar Sam Ravnborg

init/main: use __init_refok to fix section mismatch

Kill a special case in modpost by introducing the
__init_refok marker.
Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
parent 0e0d314e
...@@ -423,7 +423,7 @@ static void __init setup_command_line(char *command_line) ...@@ -423,7 +423,7 @@ static void __init setup_command_line(char *command_line)
* gcc-3.4 accidentally inlines this function, so use noinline. * gcc-3.4 accidentally inlines this function, so use noinline.
*/ */
static void noinline rest_init(void) static void noinline __init_refok rest_init(void)
__releases(kernel_lock) __releases(kernel_lock)
{ {
int pid; int pid;
......
...@@ -626,14 +626,6 @@ static int strrcmp(const char *s, const char *sub) ...@@ -626,14 +626,6 @@ static int strrcmp(const char *s, const char *sub)
* This pattern is identified by * This pattern is identified by
* refsymname = __init_begin, _sinittext, _einittext * refsymname = __init_begin, _sinittext, _einittext
* *
* Pattern 6:
* During the early init phase we have references from .init.text to
* .text we have an intended section mismatch - do not warn about it.
* See kernel_init() in init/main.c
* tosec = .init.text
* fromsec = .text
* atsym = kernel_init
*
* Pattern 7: * Pattern 7:
* Logos used in drivers/video/logo reside in __initdata but the * Logos used in drivers/video/logo reside in __initdata but the
* funtion that references them are EXPORT_SYMBOL() so cannot be * funtion that references them are EXPORT_SYMBOL() so cannot be
...@@ -738,12 +730,6 @@ static int secref_whitelist(const char *modname, const char *tosec, ...@@ -738,12 +730,6 @@ static int secref_whitelist(const char *modname, const char *tosec,
if (strcmp(refsymname, *s) == 0) if (strcmp(refsymname, *s) == 0)
return 1; return 1;
/* Check for pattern 6 */
if ((strcmp(tosec, ".init.text") == 0) &&
(strcmp(fromsec, ".text") == 0) &&
(strcmp(refsymname, "kernel_init") == 0))
return 1;
/* Check for pattern 7 */ /* Check for pattern 7 */
if ((strcmp(tosec, ".init.data") == 0) && if ((strcmp(tosec, ".init.data") == 0) &&
(strncmp(fromsec, ".text", strlen(".text")) == 0) && (strncmp(fromsec, ".text", strlen(".text")) == 0) &&
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment