diff options
author | Sam Ravnborg <sam@ravnborg.org> | 2007-06-02 22:47:53 (GMT) |
---|---|---|
committer | Sam Ravnborg <sam@ravnborg.org> | 2007-07-16 21:24:55 (GMT) |
commit | 92cc6b0725d800dcc3b9d62b419724050e4f7872 (patch) | |
tree | 5a0ee778fa759fda83e2d3bf5bfdbc9ae7340d5d | |
parent | d3ab78560b9a244bdb2ba2ef0e53193832d311c2 (diff) | |
download | linux-92cc6b0725d800dcc3b9d62b419724050e4f7872.tar.xz |
kbuild: remove hardcoded _logo names from modpost
Replaced this with a __init_refok marker
in front of fb_find_logo().
I think that the __initdata marker for the logo's are
wrong but I have not justified this so I did not remove it.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
-rw-r--r-- | drivers/video/logo/logo.c | 7 | ||||
-rw-r--r-- | scripts/mod/modpost.c | 14 |
2 files changed, 5 insertions, 16 deletions
diff --git a/drivers/video/logo/logo.c b/drivers/video/logo/logo.c index 80c0361..2b0f799 100644 --- a/drivers/video/logo/logo.c +++ b/drivers/video/logo/logo.c @@ -34,8 +34,11 @@ extern const struct linux_logo logo_superh_vga16; extern const struct linux_logo logo_superh_clut224; extern const struct linux_logo logo_m32r_clut224; - -const struct linux_logo *fb_find_logo(int depth) +/* logo's are marked __initdata. Use __init_refok to tell + * modpost that it is intended that this function uses data + * marked __initdata. + */ +const struct linux_logo * __init_refok fb_find_logo(int depth) { const struct linux_logo *logo = NULL; diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c index 1921c43..015c6b0 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c @@ -624,14 +624,6 @@ static int strrcmp(const char *s, const char *sub) * This pattern is identified by * refsymname = __init_begin, _sinittext, _einittext * - * Pattern 5: - * Logos used in drivers/video/logo reside in __initdata but the - * funtion that references them are EXPORT_SYMBOL() so cannot be - * marker __init. So we whitelist them here. - * The pattern is: - * tosec = .init.data - * fromsec = .text* - * refsymname = logo_ **/ static int secref_whitelist(const char *modname, const char *tosec, const char *fromsec, const char *atsym, @@ -698,12 +690,6 @@ static int secref_whitelist(const char *modname, const char *tosec, if (strcmp(refsymname, *s) == 0) return 1; - /* Check for pattern 5 */ - if ((strcmp(tosec, ".init.data") == 0) && - (strncmp(fromsec, ".text", strlen(".text")) == 0) && - (strncmp(refsymname, "logo_", strlen("logo_")) == 0)) - return 1; - return 0; } |