diff options
| -rw-r--r-- | scripts/kallsyms.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/scripts/kallsyms.c b/scripts/kallsyms.c index 8b809b264d18..caf4c86c3d0b 100644 --- a/scripts/kallsyms.c +++ b/scripts/kallsyms.c | |||
| @@ -24,8 +24,6 @@ | |||
| 24 | * | 24 | * |
| 25 | */ | 25 | */ |
| 26 | 26 | ||
| 27 | #define _GNU_SOURCE | ||
| 28 | |||
| 29 | #include <stdio.h> | 27 | #include <stdio.h> |
| 30 | #include <stdlib.h> | 28 | #include <stdlib.h> |
| 31 | #include <string.h> | 29 | #include <string.h> |
| @@ -378,6 +376,17 @@ static void build_initial_tok_table(void) | |||
| 378 | table_cnt = pos; | 376 | table_cnt = pos; |
| 379 | } | 377 | } |
| 380 | 378 | ||
| 379 | static void *find_token(unsigned char *str, int len, unsigned char *token) | ||
| 380 | { | ||
| 381 | int i; | ||
| 382 | |||
| 383 | for (i = 0; i < len - 1; i++) { | ||
| 384 | if (str[i] == token[0] && str[i+1] == token[1]) | ||
| 385 | return &str[i]; | ||
| 386 | } | ||
| 387 | return NULL; | ||
| 388 | } | ||
| 389 | |||
| 381 | /* replace a given token in all the valid symbols. Use the sampled symbols | 390 | /* replace a given token in all the valid symbols. Use the sampled symbols |
| 382 | * to update the counts */ | 391 | * to update the counts */ |
| 383 | static void compress_symbols(unsigned char *str, int idx) | 392 | static void compress_symbols(unsigned char *str, int idx) |
| @@ -391,7 +400,7 @@ static void compress_symbols(unsigned char *str, int idx) | |||
| 391 | p1 = table[i].sym; | 400 | p1 = table[i].sym; |
| 392 | 401 | ||
| 393 | /* find the token on the symbol */ | 402 | /* find the token on the symbol */ |
| 394 | p2 = memmem(p1, len, str, 2); | 403 | p2 = find_token(p1, len, str); |
| 395 | if (!p2) continue; | 404 | if (!p2) continue; |
| 396 | 405 | ||
| 397 | /* decrease the counts for this symbol's tokens */ | 406 | /* decrease the counts for this symbol's tokens */ |
| @@ -410,7 +419,7 @@ static void compress_symbols(unsigned char *str, int idx) | |||
| 410 | if (size < 2) break; | 419 | if (size < 2) break; |
| 411 | 420 | ||
| 412 | /* find the token on the symbol */ | 421 | /* find the token on the symbol */ |
| 413 | p2 = memmem(p1, size, str, 2); | 422 | p2 = find_token(p1, size, str); |
| 414 | 423 | ||
| 415 | } while (p2); | 424 | } while (p2); |
| 416 | 425 | ||
