lkml.org 
[lkml]   [2007]   [Jul]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 20/33] kbuild: remove hardcoded _logo names from modpost
    Date
    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>
    ---
    drivers/video/logo/logo.c | 7 +++++--
    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;
    }

    --
    1.5.0.6
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-07-17 16:19    [W:0.042 / U:3.356 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site