Commit d35cb360c29956510b2fe1a953bd4968536f7216

Authored by Mathieu Desnoyers
Committed by Linus Torvalds
1 parent 5f17156fc5

markers: fix duplicate modpost entry

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 <roland@redhat.com>
Wenji Huang <wenji.huang@oracle.com>
and
Takashi Nishiie <t-nishiie@np.css.fujitsu.com>

for providing the individual fixes.

- Changelog :
  - Integrated Takashi's Makefile modification to clear Module.markers upon
    make clean.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Cc: Roland McGrath <roland@redhat.com>
Cc: Wenji Huang <wenji.huang@oracle.com>
Cc: Takashi Nishiie <t-nishiie@np.css.fujitsu.com>
Cc: <stable@kernel.org>		[2.6.25.x, 2.6.26.x]
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

Showing 3 changed files with 5 additions and 2 deletions Side-by-side Diff

... ... @@ -1148,7 +1148,8 @@
1148 1148 @find . $(RCS_FIND_IGNORE) \
1149 1149 \( -name '*.[oas]' -o -name '*.ko' -o -name '.*.cmd' \
1150 1150 -o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \
1151   - -o -name '*.symtypes' -o -name 'modules.order' \) \
  1151 + -o -name '*.symtypes' -o -name 'modules.order' \
  1152 + -o -name 'Module.markers' \) \
1152 1153 -type f -print | xargs rm -f
1153 1154  
1154 1155 # mrproper - Delete all generated files, including .config
scripts/Makefile.modpost
... ... @@ -101,6 +101,7 @@
101 101 cmd_kernel-mod = $(modpost) $@
102 102  
103 103 vmlinux.o: FORCE
  104 + @rm -fr $(kernelmarkersfile)
104 105 $(call cmd,kernel-mod)
105 106  
106 107 # Declare generated files as targets for modpost
scripts/mod/modpost.c
... ... @@ -1992,7 +1992,8 @@
1992 1992 mod->skip = 1;
1993 1993 }
1994 1994  
1995   - add_marker(mod, marker, fmt);
  1995 + if (!mod->skip)
  1996 + add_marker(mod, marker, fmt);
1996 1997 }
1997 1998 return;
1998 1999 fail: