init/main: use __init_refok to fix section mismatch
Kill a special case in modpost by introducing the __init_refok marker. Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
This commit is contained in:
parent
0e0d314e6a
commit
92080309df
|
@ -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)
|
||||||
* 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,
|
||||||
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) &&
|
||||||
|
|
Loading…
Reference in New Issue