From: Mathieu Desnoyers Date: Tue, 22 Jul 2008 20:05:14 +0000 (+0000) Subject: markers: fix duplicate modpost entry X-Git-Tag: v2.6.25.14~20 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9b7bca7cc5bc852fb7c1a4137912c5f549b8bf7b;p=thirdparty%2Fkernel%2Fstable.git markers: fix duplicate modpost entry commit: d35cb360c29956510b2fe1a953bd4968536f7216 When a kernel was rebuilt, the previous Module.markers was not cleared. It caused markers with different format strings to appear as duplicates when a markers was changed. This problem is present since scripts/mod/modpost.c started to generate Module.markers, commit b2e3e658b344c6bcfb8fb694100ab2f2b5b2edb0 It therefore applies to 2.6.25, 2.6.26 and linux-next. I merely merged the patches from Roland, Wenji and Takashi here. Credits to Roland McGrath Wenji Huang and Takashi Nishiie for providing the individual fixes. - Changelog : - Integrated Takashi's Makefile modification to clear Module.markers upon make clean. Signed-off-by: Mathieu Desnoyers Cc: Roland McGrath Cc: Wenji Huang Cc: Takashi Nishiie Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: Greg Kroah-Hartman --- diff --git a/Makefile b/Makefile index dfc5a884494e7..4ca18b7c3dfaf 100644 --- a/Makefile +++ b/Makefile @@ -1126,7 +1126,8 @@ clean: archclean $(clean-dirs) @find . $(RCS_FIND_IGNORE) \ \( -name '*.[oas]' -o -name '*.ko' -o -name '.*.cmd' \ -o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \ - -o -name '*.symtypes' -o -name 'modules.order' \) \ + -o -name '*.symtypes' -o -name 'modules.order' \ + -o -name 'Module.markers' \) \ -type f -print | xargs rm -f # mrproper - Delete all generated files, including .config diff --git a/scripts/Makefile.modpost b/scripts/Makefile.modpost index 2d20640854b74..af21ea99f1928 100644 --- a/scripts/Makefile.modpost +++ b/scripts/Makefile.modpost @@ -87,6 +87,7 @@ quiet_cmd_kernel-mod = MODPOST $@ cmd_kernel-mod = $(modpost) $@ vmlinux.o: FORCE + @rm -fr $(kernelmarkersfile) $(call cmd,kernel-mod) # Declare generated files as targets for modpost diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c index 110cf243fa4e5..7b16b365ebdff 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c @@ -1973,7 +1973,8 @@ static void read_markers(const char *fname) mod->skip = 1; } - add_marker(mod, marker, fmt); + if (!mod->skip) + add_marker(mod, marker, fmt); } return; fail: