From: Maninder Singh <maninder1.s@samsung.com>
To: mcgrof@kernel.org, avimalin@gmail.com, ast@kernel.org,
daniel@iogearbox.net, andrii@kernel.org, kafai@fb.com,
songliubraving@fb.com, yhs@fb.com, john.fastabend@gmail.com,
kpsingh@kernel.org, pmladek@suse.com, rostedt@goodmis.org,
senozhatsky@chromium.org, andriy.shevchenko@linux.intel.com,
naveen.n.rao@linux.ibm.com, davem@davemloft.net,
mhiramat@kernel.org, anil.s.keshavamurthy@intel.com,
linux@rasmusvillemoes.dk, akpm@linux-foundation.org,
keescook@chromium.org
Cc: linux-kernel@vger.kernel.org, netdev@vger.kernel.org,
v.narang@samsung.com, Maninder Singh <maninder1.s@samsung.com>,
Onkarnath <onkarnath.1@samsung.com>
Subject: [PATCH 2/2] kallsyms: move sprint_module_info to kallsyms_tiny.c
Date: Wed, 11 May 2022 13:36:57 +0530 [thread overview]
Message-ID: <20220511080657.3996053-2-maninder1.s@samsung.com> (raw)
In-Reply-To: <20220511080657.3996053-1-maninder1.s@samsung.com>
As previous patch makes new file for generic kallsyms
(always compilable), move sprint_module_info module to
new file kallsyms_tiny.c
no functional change with this commit
Co-developed-by: Onkarnath <onkarnath.1@samsung.com>
Signed-off-by: Onkarnath <onkarnath.1@samsung.com>
Signed-off-by: Maninder Singh <maninder1.s@samsung.com>
---
include/linux/kallsyms.h | 11 +++++++++
kernel/kallsyms_tiny.c | 47 +++++++++++++++++++++++++++++++++++
lib/vsprintf.c | 53 ----------------------------------------
3 files changed, 58 insertions(+), 53 deletions(-)
diff --git a/include/linux/kallsyms.h b/include/linux/kallsyms.h
index c5e63a217404..95a2f4ade996 100644
--- a/include/linux/kallsyms.h
+++ b/include/linux/kallsyms.h
@@ -27,6 +27,17 @@ struct module;
/* How and when do we show kallsyms values? */
extern bool kallsyms_show_value(const struct cred *cred);
+#if !defined(CONFIG_KALLSYMS) && defined(CONFIG_MODULES)
+extern int sprint_module_info(char *buf, unsigned long value,
+ int modbuildid, int backtrace, int symbol);
+#else
+static inline int sprint_module_info(char *buf, unsigned long value,
+ int modbuildid, int backtrace, int symbol)
+{
+ return 0;
+}
+#endif
+
static inline int is_kernel_text(unsigned long addr)
{
if (__is_kernel_text(addr))
diff --git a/kernel/kallsyms_tiny.c b/kernel/kallsyms_tiny.c
index 96ad06836126..8ed9fdd7d9f7 100644
--- a/kernel/kallsyms_tiny.c
+++ b/kernel/kallsyms_tiny.c
@@ -49,3 +49,50 @@ bool kallsyms_show_value(const struct cred *cred)
return false;
}
}
+
+#if !defined(CONFIG_KALLSYMS) && defined(CONFIG_MODULES)
+int sprint_module_info(char *buf, unsigned long value,
+ int modbuildid, int backtrace, int symbol)
+{
+ struct module *mod;
+ unsigned long offset;
+ void *base;
+ char *modname;
+ int len;
+ const unsigned char *buildid = NULL;
+ bool add_offset;
+
+ if (is_ksym_addr(value))
+ return 0;
+
+ if (backtrace || symbol)
+ add_offset = true;
+ else
+ add_offset = false;
+
+ preempt_disable();
+ mod = __module_address(value);
+ if (mod) {
+ modname = mod->name;
+#if IS_ENABLED(CONFIG_STACKTRACE_BUILD_ID)
+ if (modbuildid)
+ buildid = mod->build_id;
+#endif
+ if (add_offset) {
+ base = mod->core_layout.base;
+ offset = value - (unsigned long)base;
+ }
+ }
+ preempt_enable();
+ if (!mod)
+ return 0;
+
+ /* address belongs to module */
+ if (add_offset)
+ len = sprintf(buf, "0x%p+0x%lx", base, offset);
+ else
+ len = sprintf(buf, "0x%lx", value);
+
+ return len + fill_name_build_id(buf, modname, modbuildid, buildid, len);
+}
+#endif
diff --git a/lib/vsprintf.c b/lib/vsprintf.c
index 799fccca4a2d..983fdb02543c 100644
--- a/lib/vsprintf.c
+++ b/lib/vsprintf.c
@@ -999,59 +999,6 @@ char *bdev_name(char *buf, char *end, struct block_device *bdev,
}
#endif
-#if !defined(CONFIG_KALLSYMS) && defined(CONFIG_MODULES)
-static int sprint_module_info(char *buf, unsigned long value,
- int modbuildid, int backtrace, int symbol)
-{
- struct module *mod;
- unsigned long offset;
- void *base;
- char *modname;
- int len;
- const unsigned char *buildid = NULL;
- bool add_offset;
-
- if (is_ksym_addr(value))
- return 0;
-
- if (backtrace || symbol)
- add_offset = true;
- else
- add_offset = false;
-
- preempt_disable();
- mod = __module_address(value);
- if (mod) {
- modname = mod->name;
-#if IS_ENABLED(CONFIG_STACKTRACE_BUILD_ID)
- if (modbuildid)
- buildid = mod->build_id;
-#endif
- if (add_offset) {
- base = mod->core_layout.base;
- offset = value - (unsigned long)base;
- }
- }
- preempt_enable();
- if (!mod)
- return 0;
-
- /* address belongs to module */
- if (add_offset)
- len = sprintf(buf, "0x%p+0x%lx", base, offset);
- else
- len = sprintf(buf, "0x%lx", value);
-
- return len + fill_name_build_id(buf, modname, modbuildid, buildid, len);
-}
-#else
-static inline int sprint_module_info(char *buf, unsigned long value,
- int modbuildid, int backtrace, int symbol)
-{
- return 0;
-}
-#endif
-
static noinline_for_stack
char *symbol_string(char *buf, char *end, void *ptr,
struct printf_spec spec, const char *fmt)
--
2.17.1
next prev parent reply other threads:[~2022-05-11 8:11 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20220511080722epcas5p459493d02ff662a7c75590e44a11e34a6@epcas5p4.samsung.com>
2022-05-11 8:06 ` [PATCH 1/2] kallsyms: add kallsyms_show_value definition in all cases Maninder Singh
2022-05-11 8:06 ` Maninder Singh [this message]
2022-05-11 22:32 ` Kees Cook
2022-05-12 3:46 ` Maninder Singh
2022-05-12 9:53 ` andriy.shevchenko
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=20220511080657.3996053-2-maninder1.s@samsung.com \
--to=maninder1.s@samsung.com \
--cc=akpm@linux-foundation.org \
--cc=andrii@kernel.org \
--cc=andriy.shevchenko@linux.intel.com \
--cc=anil.s.keshavamurthy@intel.com \
--cc=ast@kernel.org \
--cc=avimalin@gmail.com \
--cc=daniel@iogearbox.net \
--cc=davem@davemloft.net \
--cc=john.fastabend@gmail.com \
--cc=kafai@fb.com \
--cc=keescook@chromium.org \
--cc=kpsingh@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@rasmusvillemoes.dk \
--cc=mcgrof@kernel.org \
--cc=mhiramat@kernel.org \
--cc=naveen.n.rao@linux.ibm.com \
--cc=netdev@vger.kernel.org \
--cc=onkarnath.1@samsung.com \
--cc=pmladek@suse.com \
--cc=rostedt@goodmis.org \
--cc=senozhatsky@chromium.org \
--cc=songliubraving@fb.com \
--cc=v.narang@samsung.com \
--cc=yhs@fb.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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox