lkml.org 
[lkml]   [2022]   [Jun]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.17 040/298] export: fix string handling of namespace in EXPORT_SYMBOL_NS
    Date
    From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    [ Upstream commit d143b9db8069f0e2a0fa34484e806a55a0dd4855 ]

    Commit c3a6cf19e695 ("export: avoid code duplication in
    include/linux/export.h") broke the ability for a defined string to be
    used as a namespace value. Fix this up by using stringify to properly
    encode the namespace name.

    Fixes: c3a6cf19e695 ("export: avoid code duplication in include/linux/export.h")
    Cc: Miroslav Benes <mbenes@suse.cz>
    Cc: Emil Velikov <emil.l.velikov@gmail.com>
    Cc: Jessica Yu <jeyu@kernel.org>
    Cc: Quentin Perret <qperret@google.com>
    Cc: Matthias Maennich <maennich@google.com>
    Reviewed-by: Masahiro Yamada <masahiroy@kernel.org>
    Link: https://lore.kernel.org/r/20220427090442.2105905-1-gregkh@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    include/linux/export.h | 7 ++++---
    1 file changed, 4 insertions(+), 3 deletions(-)

    diff --git a/include/linux/export.h b/include/linux/export.h
    index 27d848712b90..5910ccb66ca2 100644
    --- a/include/linux/export.h
    +++ b/include/linux/export.h
    @@ -2,6 +2,8 @@
    #ifndef _LINUX_EXPORT_H
    #define _LINUX_EXPORT_H

    +#include <linux/stringify.h>
    +
    /*
    * Export symbols from the kernel to modules. Forked from module.h
    * to reduce the amount of pointless cruft we feed to gcc when only
    @@ -154,7 +156,6 @@ struct kernel_symbol {
    #endif /* CONFIG_MODULES */

    #ifdef DEFAULT_SYMBOL_NAMESPACE
    -#include <linux/stringify.h>
    #define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, __stringify(DEFAULT_SYMBOL_NAMESPACE))
    #else
    #define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
    @@ -162,8 +163,8 @@ struct kernel_symbol {

    #define EXPORT_SYMBOL(sym) _EXPORT_SYMBOL(sym, "")
    #define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "_gpl")
    -#define EXPORT_SYMBOL_NS(sym, ns) __EXPORT_SYMBOL(sym, "", #ns)
    -#define EXPORT_SYMBOL_NS_GPL(sym, ns) __EXPORT_SYMBOL(sym, "_gpl", #ns)
    +#define EXPORT_SYMBOL_NS(sym, ns) __EXPORT_SYMBOL(sym, "", __stringify(ns))
    +#define EXPORT_SYMBOL_NS_GPL(sym, ns) __EXPORT_SYMBOL(sym, "_gpl", __stringify(ns))

    #endif /* !__ASSEMBLY__ */

    --
    2.35.1


    \
     
     \ /
      Last update: 2022-06-13 16:21    [W:4.137 / U:0.608 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site