kallsyms: take advantage of the new '%px' format
The conditional kallsym hex printing used a special fixed-width '%lx' output (KALLSYM_FMT) in preparation for the hashing of %p, but that series ended up adding a %px specifier to help with the conversions. Use it, and avoid the "print pointer as an unsigned long" code. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
da6af54dc0
commit
668533dc07
@ -14,12 +14,6 @@
|
|||||||
#define KSYM_SYMBOL_LEN (sizeof("%s+%#lx/%#lx [%s]") + (KSYM_NAME_LEN - 1) + \
|
#define KSYM_SYMBOL_LEN (sizeof("%s+%#lx/%#lx [%s]") + (KSYM_NAME_LEN - 1) + \
|
||||||
2*(BITS_PER_LONG*3/10) + (MODULE_NAME_LEN - 1) + 1)
|
2*(BITS_PER_LONG*3/10) + (MODULE_NAME_LEN - 1) + 1)
|
||||||
|
|
||||||
#ifndef CONFIG_64BIT
|
|
||||||
# define KALLSYM_FMT "%08lx"
|
|
||||||
#else
|
|
||||||
# define KALLSYM_FMT "%016lx"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
struct module;
|
struct module;
|
||||||
|
|
||||||
#ifdef CONFIG_KALLSYMS
|
#ifdef CONFIG_KALLSYMS
|
||||||
|
@ -614,14 +614,14 @@ static void s_stop(struct seq_file *m, void *p)
|
|||||||
|
|
||||||
static int s_show(struct seq_file *m, void *p)
|
static int s_show(struct seq_file *m, void *p)
|
||||||
{
|
{
|
||||||
unsigned long value;
|
void *value;
|
||||||
struct kallsym_iter *iter = m->private;
|
struct kallsym_iter *iter = m->private;
|
||||||
|
|
||||||
/* Some debugging symbols have no name. Ignore them. */
|
/* Some debugging symbols have no name. Ignore them. */
|
||||||
if (!iter->name[0])
|
if (!iter->name[0])
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
value = iter->show_value ? iter->value : 0;
|
value = iter->show_value ? (void *)iter->value : NULL;
|
||||||
|
|
||||||
if (iter->module_name[0]) {
|
if (iter->module_name[0]) {
|
||||||
char type;
|
char type;
|
||||||
@ -632,10 +632,10 @@ static int s_show(struct seq_file *m, void *p)
|
|||||||
*/
|
*/
|
||||||
type = iter->exported ? toupper(iter->type) :
|
type = iter->exported ? toupper(iter->type) :
|
||||||
tolower(iter->type);
|
tolower(iter->type);
|
||||||
seq_printf(m, KALLSYM_FMT " %c %s\t[%s]\n", value,
|
seq_printf(m, "%px %c %s\t[%s]\n", value,
|
||||||
type, iter->name, iter->module_name);
|
type, iter->name, iter->module_name);
|
||||||
} else
|
} else
|
||||||
seq_printf(m, KALLSYM_FMT " %c %s\n", value,
|
seq_printf(m, "%px %c %s\n", value,
|
||||||
iter->type, iter->name);
|
iter->type, iter->name);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -4157,7 +4157,7 @@ static int m_show(struct seq_file *m, void *p)
|
|||||||
{
|
{
|
||||||
struct module *mod = list_entry(p, struct module, list);
|
struct module *mod = list_entry(p, struct module, list);
|
||||||
char buf[MODULE_FLAGS_BUF_SIZE];
|
char buf[MODULE_FLAGS_BUF_SIZE];
|
||||||
unsigned long value;
|
void *value;
|
||||||
|
|
||||||
/* We always ignore unformed modules. */
|
/* We always ignore unformed modules. */
|
||||||
if (mod->state == MODULE_STATE_UNFORMED)
|
if (mod->state == MODULE_STATE_UNFORMED)
|
||||||
@ -4173,8 +4173,8 @@ static int m_show(struct seq_file *m, void *p)
|
|||||||
mod->state == MODULE_STATE_COMING ? "Loading" :
|
mod->state == MODULE_STATE_COMING ? "Loading" :
|
||||||
"Live");
|
"Live");
|
||||||
/* Used by oprofile and other similar tools. */
|
/* Used by oprofile and other similar tools. */
|
||||||
value = m->private ? 0 : (unsigned long)mod->core_layout.base;
|
value = m->private ? NULL : mod->core_layout.base;
|
||||||
seq_printf(m, " 0x" KALLSYM_FMT, value);
|
seq_printf(m, " 0x%px", value);
|
||||||
|
|
||||||
/* Taints info */
|
/* Taints info */
|
||||||
if (mod->taints)
|
if (mod->taints)
|
||||||
|
Loading…
Reference in New Issue
Block a user