Last minute perf unbreakage for ARM modules; spent a day in linux-next.
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.14 (GNU/Linux) iQIcBAABAgAGBQJSdC8JAAoJENkgDmzRrbjx6TEP/jLxlenB07cjc8SnPD1m6htT DLFr/t1Jz9qr10EzT9wbNlUtrVhw5HRztd3SDGc8I0OivvAzIxMTVv67CYXHXKMH ycrjUOIVnu0Dg/+R1QoP9KFG9aR5UIK0kctTWBhn7ayR0TJfoCN7x7fdWYZP2k6g QEXYUvAAaOp9Kg/0oZQ8bXmBVsdoRd3s3PGZUxcOqjD+kK3t+hczJtu6sYgLQvBK 85Pi+oW1/RZ0ewL89BbU80zwn2vfObtS09sbkxlLKuXFdpp+Veay9Ps6imTzI6PB A953j3FwbxpCpwiFOSmF8Ba/7JU4cBW6asM7ZnDTRXkJhlIWxtr0DJxP++vGMo1u IZsZRJcwVIQJg1+WvLgw9/aVx1+Yz560jaFJYfr/Lvq6wgNimWtCmyQ8SlFsLxYm FO0QuImTGo1iB13hLZ4guMm73WxHGhIXn/29FHq5UmGG/FrCSR1YUq9thP221DrP MD3ufvTHvZv9Vb6kzMm2A6oM0Z/HsTATIyirryAPQC1sL3ExwMQibNmGBnV2lPL+ veaVG4QuPiyHhUDigIxqaltGsCXC/MLv8GbwlqcKWYQENHrQ5qtQxMd2sBmALP7f mu4qwcbDBVPqJuCj/+H5QbRLiDfTWmKttUWGRwSIwFJDD/uCvl7yfqzFoqckAJql xCtWjFzu3NpM/T3xF39j =O8nP -----END PGP SIGNATURE----- Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux Pull ARM kallsyms fix from Rusty Russell: "Last minute perf unbreakage for ARM modules; spent a day in linux-next" * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux: scripts/kallsyms: filter symbols not in kernel address space
This commit is contained in:
commit
9dc8c89dfb
@ -55,6 +55,7 @@ static struct sym_entry *table;
|
|||||||
static unsigned int table_size, table_cnt;
|
static unsigned int table_size, table_cnt;
|
||||||
static int all_symbols = 0;
|
static int all_symbols = 0;
|
||||||
static char symbol_prefix_char = '\0';
|
static char symbol_prefix_char = '\0';
|
||||||
|
static unsigned long long kernel_start_addr = 0;
|
||||||
|
|
||||||
int token_profit[0x10000];
|
int token_profit[0x10000];
|
||||||
|
|
||||||
@ -65,7 +66,10 @@ unsigned char best_table_len[256];
|
|||||||
|
|
||||||
static void usage(void)
|
static void usage(void)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Usage: kallsyms [--all-symbols] [--symbol-prefix=<prefix char>] < in.map > out.S\n");
|
fprintf(stderr, "Usage: kallsyms [--all-symbols] "
|
||||||
|
"[--symbol-prefix=<prefix char>] "
|
||||||
|
"[--page-offset=<CONFIG_PAGE_OFFSET>] "
|
||||||
|
"< in.map > out.S\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -194,6 +198,9 @@ static int symbol_valid(struct sym_entry *s)
|
|||||||
int i;
|
int i;
|
||||||
int offset = 1;
|
int offset = 1;
|
||||||
|
|
||||||
|
if (s->addr < kernel_start_addr)
|
||||||
|
return 0;
|
||||||
|
|
||||||
/* skip prefix char */
|
/* skip prefix char */
|
||||||
if (symbol_prefix_char && *(s->sym + 1) == symbol_prefix_char)
|
if (symbol_prefix_char && *(s->sym + 1) == symbol_prefix_char)
|
||||||
offset++;
|
offset++;
|
||||||
@ -646,6 +653,9 @@ int main(int argc, char **argv)
|
|||||||
if ((*p == '"' && *(p+2) == '"') || (*p == '\'' && *(p+2) == '\''))
|
if ((*p == '"' && *(p+2) == '"') || (*p == '\'' && *(p+2) == '\''))
|
||||||
p++;
|
p++;
|
||||||
symbol_prefix_char = *p;
|
symbol_prefix_char = *p;
|
||||||
|
} else if (strncmp(argv[i], "--page-offset=", 14) == 0) {
|
||||||
|
const char *p = &argv[i][14];
|
||||||
|
kernel_start_addr = strtoull(p, NULL, 16);
|
||||||
} else
|
} else
|
||||||
usage();
|
usage();
|
||||||
}
|
}
|
||||||
|
@ -82,6 +82,8 @@ kallsyms()
|
|||||||
kallsymopt="${kallsymopt} --all-symbols"
|
kallsymopt="${kallsymopt} --all-symbols"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
kallsymopt="${kallsymopt} --page-offset=$CONFIG_PAGE_OFFSET"
|
||||||
|
|
||||||
local aflags="${KBUILD_AFLAGS} ${KBUILD_AFLAGS_KERNEL} \
|
local aflags="${KBUILD_AFLAGS} ${KBUILD_AFLAGS_KERNEL} \
|
||||||
${NOSTDINC_FLAGS} ${LINUXINCLUDE} ${KBUILD_CPPFLAGS}"
|
${NOSTDINC_FLAGS} ${LINUXINCLUDE} ${KBUILD_CPPFLAGS}"
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user