From b767b9059fa75a353c9ad6e320ae080fbe15a951 Mon Sep 17 00:00:00 2001 From: Amerigo Wang Date: Fri, 19 Jun 2009 03:06:54 -0400 Subject: [PATCH 1/4] kbuild: fix build error during make htmldocs Fix the following build error when do 'make htmldocs': DOCPROC Documentation/DocBook/debugobjects.xml exec /scripts/kernel-doc: No such file or directory exec /scripts/kernel-doc: No such file or directory Reported-by: Randy Dunlap Signed-off-by: WANG Cong Acked-by: Randy Dunlap Signed-off-by: Sam Ravnborg --- scripts/basic/docproc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/basic/docproc.c b/scripts/basic/docproc.c index 4c9523ef9c00..99ca7a698687 100644 --- a/scripts/basic/docproc.c +++ b/scripts/basic/docproc.c @@ -385,7 +385,7 @@ int main(int argc, char *argv[]) if (!srctree) srctree = getcwd(NULL, 0); kernsrctree = getenv("KBUILD_SRC"); - if (!kernsrctree) + if (!kernsrctree || !*kernsrctree) kernsrctree = srctree; if (argc != 3) { usage(); From ac6ca5c86c63dd95acc6a34dff8d33c23b703a37 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Mon, 15 Jun 2009 07:52:48 -0400 Subject: [PATCH 2/4] kallsyms: fix inverted valid symbol checking The previous commit (17b1f0de) introduced a slightly broken consolidation of the memory text range checking. Signed-off-by: Mike Frysinger Signed-off-by: Sam Ravnborg --- scripts/kallsyms.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/kallsyms.c b/scripts/kallsyms.c index 3cb57895c9ea..64343cc084b4 100644 --- a/scripts/kallsyms.c +++ b/scripts/kallsyms.c @@ -167,11 +167,11 @@ static int symbol_valid_tr(struct sym_entry *s) for (i = 0; i < ARRAY_SIZE(text_ranges); ++i) { tr = &text_ranges[i]; - if (s->addr >= tr->start && s->addr < tr->end) - return 0; + if (s->addr >= tr->start && s->addr <= tr->end) + return 1; } - return 1; + return 0; } static int symbol_valid(struct sym_entry *s) From b2fd6dbf25cba7d904b62b81639bca8678c901fa Mon Sep 17 00:00:00 2001 From: Randy Dunlap Date: Wed, 17 Jun 2009 17:36:15 -0700 Subject: [PATCH 3/4] kernel-doc: ignore kmemcheck_bitfield_begin/end Teach kernel-doc to ignore kmemcheck_bitfield_{begin,end} sugar so that it won't generate warnings like this: Warning(include/net/sock.h:297): No description found for parameter 'kmemcheck_bitfield_begin(flags)' Warning(include/net/sock.h:297): No description found for parameter 'kmemcheck_bitfield_end(flags)' Signed-off-by: Randy Dunlap Signed-off-by: Sam Ravnborg --- scripts/kernel-doc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/kernel-doc b/scripts/kernel-doc index a193fa3f5272..fde6e3a22e70 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -1468,6 +1468,8 @@ sub dump_enum($$) { } } + # strip kmemcheck_bitfield_{begin,end}.*; + $members =~ s/kmemcheck_bitfield_.*?;//gos; output_declaration($declaration_name, 'enum', From e34e7dbb35474ffc75f639eca64a18a15f4f8688 Mon Sep 17 00:00:00 2001 From: Randy Dunlap Date: Wed, 17 Jun 2009 17:37:47 -0700 Subject: [PATCH 4/4] kernel-doc: fix param matching for array params Fix function actual parameter vs. kernel-doc description matching so that a warning is not printed when it should not be: Warning(include/linux/etherdevice.h:199): Excess function parameter 'addr' description in 'is_etherdev_addr' Signed-off-by: Randy Dunlap Signed-off-by: Sam Ravnborg --- scripts/kernel-doc | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/scripts/kernel-doc b/scripts/kernel-doc index fde6e3a22e70..ed591e9b7d1d 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -1653,6 +1653,15 @@ sub push_parameter($$$) { } } + # strip spaces from $param so that it is one continous string + # on @parameterlist; + # this fixes a problem where check_sections() cannot find + # a parameter like "addr[6 + 2]" because it actually appears + # as "addr[6", "+", "2]" on the parameter list; + # but it's better to maintain the param string unchanged for output, + # so just weaken the string compare in check_sections() to ignore + # "[blah" in a parameter string; + ###$param =~ s/\s*//g; push @parameterlist, $param; $parametertypes{$param} = $type; } @@ -1671,6 +1680,14 @@ sub check_sections($$$$$$) { $prm_clean = $prms[$px]; $prm_clean =~ s/\[.*\]//; $prm_clean =~ s/__attribute__\s*\(\([a-z,_\*\s\(\)]*\)\)//; + # ignore array size in a parameter string; + # however, the original param string may contain + # spaces, e.g.: addr[6 + 2] + # and this appears in @prms as "addr[6" since the + # parameter list is split at spaces; + # hence just ignore "[..." for the sections check; + $prm_clean =~ s/\[.*//; + ##$prm_clean =~ s/^\**//; if ($prm_clean eq $sects[$sx]) { $err = 0;