| From a78f70e8d65e88b9f631d073f68cb26dcd746298 Mon Sep 17 00:00:00 2001 |
| From: Michal Marek <mmarek@suse.com> |
| Date: Wed, 9 Dec 2015 15:08:21 +0100 |
| Subject: genksyms: Handle string literals with spaces in reference files |
| |
| From: Michal Marek <mmarek@suse.com> |
| |
| commit a78f70e8d65e88b9f631d073f68cb26dcd746298 upstream. |
| |
| The reference files use spaces to separate tokens, however, we must |
| preserve spaces inside string literals. Currently the only case in the |
| tree is struct edac_raw_error_desc in <linux/edac.h>: |
| |
| $ KBUILD_SYMTYPES=1 make -s drivers/edac/amd64_edac.symtypes |
| $ mv drivers/edac/amd64_edac.{symtypes,symref} |
| $ KBUILD_SYMTYPES=1 make -s drivers/edac/amd64_edac.symtypes |
| drivers/edac/amd64_edac.c:527: warning: amd64_get_dram_hole_info: modversion changed because of changes in struct edac_raw_error_desc |
| |
| Signed-off-by: Michal Marek <mmarek@suse.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| scripts/genksyms/genksyms.c | 6 ++++-- |
| 1 file changed, 4 insertions(+), 2 deletions(-) |
| |
| --- a/scripts/genksyms/genksyms.c |
| +++ b/scripts/genksyms/genksyms.c |
| @@ -423,13 +423,15 @@ static struct string_list *read_node(FIL |
| struct string_list node = { |
| .string = buffer, |
| .tag = SYM_NORMAL }; |
| - int c; |
| + int c, in_string = 0; |
| |
| while ((c = fgetc(f)) != EOF) { |
| - if (c == ' ') { |
| + if (!in_string && c == ' ') { |
| if (node.string == buffer) |
| continue; |
| break; |
| + } else if (c == '"') { |
| + in_string = !in_string; |
| } else if (c == '\n') { |
| if (node.string == buffer) |
| return NULL; |