From: Lecopzer Chen <lecopzer.chen@mediatek.com> To: Luis Chamberlain <mcgrof@kernel.org>, <linux-kernel@vger.kernel.org> Cc: Matthias Brugger <matthias.bgg@gmail.com>, <linux-modules@vger.kernel.org>, <linux-mediatek@lists.infradead.org>, <yj.chiang@mediatek.com>, <lecopzer.chen@mediatek.com> Subject: [PATCH] module: show disallowed symbol name for inherit_taint() Date: Tue, 26 Apr 2022 12:21:20 +0800 [thread overview] Message-ID: <20220426042120.9686-1-lecopzer.chen@mediatek.com> (raw) The error log for inherit_taint() doesn't really help to find the symbols which violate GPL rules. For example, if a module has 50 disallowed symbols, the log only shows the content below and is duplicated with 50 lines. AAA: module using GPL-only symbols uses symbols from proprietary module BBB. AAA: module using GPL-only symbols uses symbols from proprietary module BBB. ... This patch add symbol name to tell the offending symbols explicitly. To-be: AAA: module using GPL-only symbols uses symbols SS1 from proprietary module BBB. AAA: module using GPL-only symbols uses symbols SS2 from proprietary module BBB. ... Signed-off-by: Lecopzer Chen <lecopzer.chen@mediatek.com> --- kernel/module.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/kernel/module.c b/kernel/module.c index 6cea788fd965..30973f0d2b7c 100644 --- a/kernel/module.c +++ b/kernel/module.c @@ -1372,20 +1372,20 @@ static int verify_namespace_is_imported(const struct load_info *info, return 0; } -static bool inherit_taint(struct module *mod, struct module *owner) +static bool inherit_taint(struct module *mod, struct module *owner, const char *name) { if (!owner || !test_bit(TAINT_PROPRIETARY_MODULE, &owner->taints)) return true; if (mod->using_gplonly_symbols) { - pr_err("%s: module using GPL-only symbols uses symbols from proprietary module %s.\n", - mod->name, owner->name); + pr_err("%s: module using GPL-only symbols uses symbols %s from proprietary module %s.\n", + mod->name, name, owner->name); return false; } if (!test_bit(TAINT_PROPRIETARY_MODULE, &mod->taints)) { - pr_warn("%s: module uses symbols from proprietary module %s, inheriting taint.\n", - mod->name, owner->name); + pr_warn("%s: module uses symbols %s from proprietary module %s, inheriting taint.\n", + mod->name, name, owner->name); set_bit(TAINT_PROPRIETARY_MODULE, &mod->taints); } return true; @@ -1417,7 +1417,7 @@ static const struct kernel_symbol *resolve_symbol(struct module *mod, if (fsa.license == GPL_ONLY) mod->using_gplonly_symbols = true; - if (!inherit_taint(mod, fsa.owner)) { + if (!inherit_taint(mod, fsa.owner, name)) { fsa.sym = NULL; goto getname; } -- 2.18.0
WARNING: multiple messages have this Message-ID (diff)
From: Lecopzer Chen <lecopzer.chen@mediatek.com> To: Luis Chamberlain <mcgrof@kernel.org>, <linux-kernel@vger.kernel.org> Cc: Matthias Brugger <matthias.bgg@gmail.com>, <linux-modules@vger.kernel.org>, <linux-mediatek@lists.infradead.org>, <yj.chiang@mediatek.com>, <lecopzer.chen@mediatek.com> Subject: [PATCH] module: show disallowed symbol name for inherit_taint() Date: Tue, 26 Apr 2022 12:21:20 +0800 [thread overview] Message-ID: <20220426042120.9686-1-lecopzer.chen@mediatek.com> (raw) The error log for inherit_taint() doesn't really help to find the symbols which violate GPL rules. For example, if a module has 50 disallowed symbols, the log only shows the content below and is duplicated with 50 lines. AAA: module using GPL-only symbols uses symbols from proprietary module BBB. AAA: module using GPL-only symbols uses symbols from proprietary module BBB. ... This patch add symbol name to tell the offending symbols explicitly. To-be: AAA: module using GPL-only symbols uses symbols SS1 from proprietary module BBB. AAA: module using GPL-only symbols uses symbols SS2 from proprietary module BBB. ... Signed-off-by: Lecopzer Chen <lecopzer.chen@mediatek.com> --- kernel/module.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/kernel/module.c b/kernel/module.c index 6cea788fd965..30973f0d2b7c 100644 --- a/kernel/module.c +++ b/kernel/module.c @@ -1372,20 +1372,20 @@ static int verify_namespace_is_imported(const struct load_info *info, return 0; } -static bool inherit_taint(struct module *mod, struct module *owner) +static bool inherit_taint(struct module *mod, struct module *owner, const char *name) { if (!owner || !test_bit(TAINT_PROPRIETARY_MODULE, &owner->taints)) return true; if (mod->using_gplonly_symbols) { - pr_err("%s: module using GPL-only symbols uses symbols from proprietary module %s.\n", - mod->name, owner->name); + pr_err("%s: module using GPL-only symbols uses symbols %s from proprietary module %s.\n", + mod->name, name, owner->name); return false; } if (!test_bit(TAINT_PROPRIETARY_MODULE, &mod->taints)) { - pr_warn("%s: module uses symbols from proprietary module %s, inheriting taint.\n", - mod->name, owner->name); + pr_warn("%s: module uses symbols %s from proprietary module %s, inheriting taint.\n", + mod->name, name, owner->name); set_bit(TAINT_PROPRIETARY_MODULE, &mod->taints); } return true; @@ -1417,7 +1417,7 @@ static const struct kernel_symbol *resolve_symbol(struct module *mod, if (fsa.license == GPL_ONLY) mod->using_gplonly_symbols = true; - if (!inherit_taint(mod, fsa.owner)) { + if (!inherit_taint(mod, fsa.owner, name)) { fsa.sym = NULL; goto getname; } -- 2.18.0 _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek
next reply other threads:[~2022-04-26 4:21 UTC|newest] Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-04-26 4:21 Lecopzer Chen [this message] 2022-04-26 4:21 ` [PATCH] module: show disallowed symbol name for inherit_taint() Lecopzer Chen 2022-04-26 16:26 ` Luis Chamberlain 2022-04-26 16:26 ` Luis Chamberlain 2022-04-27 7:40 ` Lecopzer Chen 2022-04-27 7:40 ` Lecopzer Chen
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20220426042120.9686-1-lecopzer.chen@mediatek.com \ --to=lecopzer.chen@mediatek.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mediatek@lists.infradead.org \ --cc=linux-modules@vger.kernel.org \ --cc=matthias.bgg@gmail.com \ --cc=mcgrof@kernel.org \ --cc=yj.chiang@mediatek.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.