1. 31 3月, 2009 1 次提交
    • R
      module: include other structures in module version check · 8c8ef42a
      Rusty Russell 提交于
      With CONFIG_MODVERSIONS, we version 'struct module' using a dummy
      export, but other things matter too:
      
      1) 'struct modversion_info' determines the layout of the __versions section,
      2) 'struct kernel_param' determines the layout of the __params section,
      3) 'struct kernel_symbol' determines __ksymtab*.
      4) 'struct marker' determines __markers.
      5) 'struct tracepoint' determines __tracepoints.
      
      So we rename 'struct_module' to 'module_layout' and include these in
      the signature.  Now it's general we can add others later on without
      confusion.
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      8c8ef42a
  2. 06 2月, 2009 1 次提交
    • T
      modpost: NOBITS sections may point beyond the end of the file · 56fc82c5
      Tejun Heo 提交于
      Impact: fix link failure on certain toolchains with specific configs
      
      Recent percpu change made x86_64 split .data.init section into three
      separate segments - data.init, percpu and data.init2.  data.init2 gets
      .data.nosave and .bss.* and is followed by .notes segment.  Depending
      on configuration both segments might contain no data, in which case
      the tool chain makes the section header to contain offset beyond the
      end of the file.
      
      modpost isn't too happy about it and fails build - as reported by
      Pawel Dziekonski:
      
          Building modules, stage 2.
          MODPOST 416 modules
          FATAL: vmlinux is truncated. sechdrs[i].sh_offset=10354688 >
          sizeof(*hrd)=64
          make[1]: *** [__modpost] Error 1
      
      Teach modpost that NOBITS section may point beyond the end of the file
      and that .modinfo can't be NOBITS.
      Reported-by: NPawel Dziekonski <dzieko@gmail.com>
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      56fc82c5
  3. 11 10月, 2008 1 次提交
    • G
      Staging: add TAINT_CRAP flag to drivers/staging modules · a9860bf0
      Greg Kroah-Hartman 提交于
      We need to add a flag for all code that is in the drivers/staging/
      directory to prevent all other kernel developers from worrying about
      issues here, and to notify users that the drivers might not be as good
      as they are normally used to.
      
      Based on code from Andreas Gruenbacher and Jeff Mahoney to provide a
      TAINT flag for the support level of a kernel module in the Novell
      enterprise kernel release.
      
      This is the code that actually modifies the modules, adding the flag to
      any files in the drivers/staging directory.
      
      Cc: Andreas Gruenbacher <agruen@suse.de>
      Cc: Jeff Mahoney <jeffm@suse.de>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      a9860bf0
  4. 07 10月, 2008 1 次提交
    • M
      Marker depmod fix core kernel list · 87f3b6b6
      Mathieu Desnoyers 提交于
      * Theodore Ts'o (tytso@mit.edu) wrote:
      >
      > I've been playing with adding some markers into ext4 to see if they
      > could be useful in solving some problems along with Systemtap.  It
      > appears, though, that as of 2.6.27-rc8, markers defined in code which is
      > compiled directly into the kernel (i.e., not as modules) don't show up
      > in Module.markers:
      >
      > kvm_trace_entryexit arch/x86/kvm/kvm-intel  %u %p %u %u %u %u %u %u
      > kvm_trace_handler arch/x86/kvm/kvm-intel  %u %p %u %u %u %u %u %u
      > kvm_trace_entryexit arch/x86/kvm/kvm-amd  %u %p %u %u %u %u %u %u
      > kvm_trace_handler arch/x86/kvm/kvm-amd  %u %p %u %u %u %u %u %u
      >
      > (Note the lack of any of the kernel_sched_* markers, and the markers I
      > added for ext4_* and jbd2_* are missing as wel.)
      >
      > Systemtap apparently depends on in-kernel trace_mark being recorded in
      > Module.markers, and apparently it's been claimed that it used to be
      > there.  Is this a bug in systemtap, or in how Module.markers is getting
      > built?   And is there a file that contains the equivalent information
      > for markers located in non-modules code?
      
      I think the problem comes from "markers: fix duplicate modpost entry"
      (commit d35cb360)
      
      Especially :
      
        -   add_marker(mod, marker, fmt);
        +   if (!mod->skip)
        +     add_marker(mod, marker, fmt);
          }
          return;
         fail:
      
      Here is a fix that should take care if this problem.
      
      Thanks for the bug report!
      Signed-off-by: NMathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
      Tested-by: N"Theodore Ts'o" <tytso@mit.edu>
      CC: Greg KH <greg@kroah.com>
      CC: David Smith <dsmith@redhat.com>
      CC: Roland McGrath <roland@redhat.com>
      CC: Sam Ravnborg <sam@ravnborg.org>
      CC: Wenji Huang <wenji.huang@oracle.com>
      CC: Takashi Nishiie <t-nishiie@np.css.fujitsu.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      87f3b6b6
  5. 31 7月, 2008 1 次提交
  6. 23 7月, 2008 1 次提交
    • M
      markers: fix duplicate modpost entry · d35cb360
      Mathieu Desnoyers 提交于
      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
      b2e3e658
      
      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: NMathieu 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: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      d35cb360
  7. 12 6月, 2008 1 次提交
    • S
      kbuild: ignore powerpc specific symbols in modpost · 4d7365d6
      Sam Ravnborg 提交于
      Kumar Gala <galak@kernel.crashing.org> wrote:
      We have a case in powerpc in which we want to link some library
      routines with all module objects.  The routines are intended for
      handling out-of-line function call register save/restore so having
      them as EXPORT_SYMBOL() is counter productive (we do also need to
      link the same "library" code into the kernel).
      
      Without this patch a powerpc build would error out and fail
      to build modules with the added register save/restore module.
      
      There were two obvious solutions:
      1) To link the .o file before the modpost stage
      2) To ignore the symbols in modpost
      
      Option 1) was ruled out because we do not have any separate
      linking stage for single file modules.
      
      This patch implements option 2 - and do so only for powerpc.
      
      The symbols we ignore are all undefined symbols named:
      _restgpr_*, _savegpr_*, _rest32gpr_*, _save32gpr_*
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Cc: Kumar Gala <galak@kernel.crashing.org>
      Cc: Paul Mackerras <paulus@samba.org>
      4d7365d6
  8. 11 5月, 2008 1 次提交
    • A
      kbuild: disable modpost warnings for linkonce sections · fd1db0a3
      Andi Kleen 提交于
      Disable modpost warnings for linkonce sections
      
      My build gives lots of warnings like
      
      WARNING: sound/core/snd.o (.gnu.linkonce.wi.mpspec_def.h.30779716): unexpected section name.
      The (.[number]+) following section name are ld generated and not expected.
      Did you forget to use "ax"/"aw" in a .S file?
      Note that for example <linux/init.h> contains
      section definitions for use in .S files.
      
      But for .linkonce. duplicated sections are actually ok and expected.
      So just disable the warning for this case.
      Signed-off-by: NAndi Kleen <ak@linux.intel.com>
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      fd1db0a3
  9. 27 4月, 2008 1 次提交
  10. 26 4月, 2008 2 次提交
    • R
      kbuild: support loading extra symbols in modpost · 2d04b5ae
      Richard Hacker 提交于
      This patch adds a new command line option -E to modpost, expecting a symbol
      file as an argument which is read prior to symbol processing. -E can be
      supplied multiple times for as many files as is needed.
      
      When building kernel modules that depend on other modules not in the main
      kernel tree, modpost complains about undefined symbols:
      # make -C /path/to/linux/kernel M=/path/to/my/module
      ...
      Building modules, stage 2.
      ....
      WARNING: "rt_copy_buf" [/home/rich/osc_etl_rtw/osc_kmod.ko] undefined!
      ...etc
      
      This situation occurs when modpost processes the new module's symbols. When
      it finds symbols not exported by the mainline kernel, it issues this warning.
      
      The patch adds a new command line option -e to modpost which expects a symbol
      file as an argument. The symbols listed in this file are added to modpost's
      symbol tables during startup. -e can be supplied as often as required.
      
      This patch works together with the second patch. It introduces a new make
      variable, KBUILD_EXTRA_SYMBOLS, which is used when calling modpost.
      Signed-off-by: NRichard Hacker <lerichi@gmx.net>
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      2d04b5ae
    • S
      kbuild: error out on missing MODULE_LICENSE · eed7d279
      Sam Ravnborg 提交于
      Adrian Bunk suggested a build time check for
      missing MODULE_LICENSE annotation in modules.
      The build time check is fatal as we really
      want this fixed for all modules.
      In-tree modules should all have been fixed up by now.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Cc: Adrian Bunk <bunk@kernel.org>
      eed7d279
  11. 24 3月, 2008 1 次提交
  12. 20 2月, 2008 1 次提交
    • G
      kbuild: fix reversed symbol name order in modpost · b1d2675a
      Geert Uytterhoeven 提交于
      XXXINIT_TO_INIT and XXXEXIT_TO_EXIT warnings use the reversed symbol name order
      in the suggestion, e.g.:
      
          WARNING: vmlinux.o(.meminit.text+0x36c): Section mismatch in reference from the function free_area_init_core() to the function .init.text:setup_usemap()
          The function __meminit free_area_init_core() references
          a function __init setup_usemap().
          If free_area_init_core is only used by setup_usemap then
          annotate free_area_init_core with a matching annotation.
      Signed-off-by: NGeert Uytterhoeven <geert@linux-m68k.org>
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      b1d2675a
  13. 14 2月, 2008 1 次提交
    • M
      Linux Kernel Markers: create modpost file · b2e3e658
      Mathieu Desnoyers 提交于
      This adds some new magic in the MODPOST phase for CONFIG_MARKERS.  Analogous
      to the Module.symvers file, the build will now write a Module.markers file
      when CONFIG_MARKERS=y is set.  This file lists the name, defining module, and
      format string of each marker, separated by \t characters.  This simple text
      file can be used by offline build procedures for instrumentation code,
      analogous to how System.map and Module.symvers can be useful to have for
      kernels other than the one you are running right now.
      
      The strings are made easy to extract by having the __trace_mark macro define
      the name and format together in a single array called __mstrtab_* in the
      __markers_strings section.  This is straightforward and reliable as long as
      the marker structs are always defined by this macro.  It is an unreasonable
      amount of hairy work to extract the string pointers from the __markers section
      structs, which entails handling a relocation type for every machine under the
      sun.
      
      Mathieu :
      - Ran through checkpatch.pl
      Signed-off-by: NRoland McGrath <roland@redhat.com>
      Signed-off-by: NMathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
      Cc: David Smith <dsmith@redhat.com>
      Cc: Sam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b2e3e658
  14. 09 2月, 2008 2 次提交
  15. 03 2月, 2008 2 次提交
  16. 29 1月, 2008 16 次提交
    • S
      kbuild: warn about ld added unique sections · e241a630
      Sam Ravnborg 提交于
      If there is a mixture of specifying sections for code in gcc
      and assembler then if the assembler code do not add
      the "ax" flags the linker will see this as two different sections
      and generate unique sections for each. ld does so by adding a dot
      and a number.
      Teach modpost to warn if a section shows up that match this
      pattern - but do this only for non-debug sections.
      
      It will result in warnings like this:
      
      WARNING: vmlinux.o (.sched.text.1): unexpected section name.
      The (.[number]+) following section name are ld generated and not expected.
      Did you forget to use "ax"/"aw" in a .S file?
      Note that for example <linux/init.h> contains
      section definitions for use in .S files.
      
      All warnings seen with a defconfig build for:
      x86 (32+64bit) and sparc64 has been fixed (via respective maintainers).
      
      arm, powerpc (64 bit), s390 (32 bit), ia64, alpha, sh4 checked - no
      warnings seen with a defconfig build.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      e241a630
    • S
      kbuild: add verbose option to Section mismatch reporting in modpost · 588ccd73
      Sam Ravnborg 提交于
      If the config option CONFIG_SECTION_MISMATCH is not set and
      we see a Section mismatch present the following to the user:
      
      modpost: Found 1 section mismatch(es).
      To see additional details select "Enable full Section mismatch analysis"
      in the Kernel Hacking menu (CONFIG_SECTION_MISMATCH).
      
      If the option CONFIG_SECTION_MISMATCH is selected
      then be verbose in the Section mismatch reporting from mdopost.
      Sample outputs:
      
      WARNING: o-x86_64/vmlinux.o(.text+0x7396): Section mismatch in reference from the function discover_ebda() to the variable .init.data:ebda_addr
      The function  discover_ebda() references
      the variable __initdata ebda_addr.
      This is often because discover_ebda lacks a __initdata
      annotation or the annotation of ebda_addr is wrong.
      
      WARNING: o-x86_64/vmlinux.o(.data+0x74d58): Section mismatch in reference from the variable pci_serial_quirks to the function .devexit.text:pci_plx9050_exit()
      The variable pci_serial_quirks references
      the function __devexit pci_plx9050_exit()
      If the reference is valid then annotate the
      variable with __exit* (see linux/init.h) or name the variable:
      *driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console,
      
      WARNING: o-x86_64/vmlinux.o(__ksymtab+0x630): Section mismatch in reference from the variable __ksymtab_arch_register_cpu to the function .cpuinit.text:arch_register_cpu()
      The symbol arch_register_cpu is exported and annotated __cpuinit
      Fix this by removing the __cpuinit annotation of arch_register_cpu or drop the export.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      588ccd73
    • A
      remove __attribute_used__ · 3ff6eecc
      Adrian Bunk 提交于
      Remove the deprecated __attribute_used__.
      
      [Introduce __section in a few places to silence checkpatch /sam]
      Signed-off-by: NAdrian Bunk <bunk@kernel.org>
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      3ff6eecc
    • S
      kbuild: simplified warning report in modpost · 58fb0d4f
      Sam Ravnborg 提交于
      Refactor code so the warning report function
      does nothing else than reporting warnings.
      As a side effect some other code paths were cleaned
      up by this.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      58fb0d4f
    • S
      kbuild: introduce a few helpers in modpost · ff13f926
      Sam Ravnborg 提交于
      Introducing helpers to retreive symbol and section
      names cleaned up the code a bit.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      ff13f926
    • S
      kbuild: use simpler section mismatch warnings in modpost · 157c23c8
      Sam Ravnborg 提交于
      The typical layout is now:
      WARNING: vmlinux.o(.text+0x372ec): Section mismatch: reference to .devinit.text:pci_scan_one_pbm in 'psycho_scan_bus'
      
      This is first step towards more readable warnings.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      157c23c8
    • S
      Use separate sections for __dev/__cpu/__mem code/data · eb8f6890
      Sam Ravnborg 提交于
      Introducing separate sections for __dev* (HOTPLUG),
      __cpu* (HOTPLUG_CPU) and __mem* (MEMORY_HOTPLUG)
      allows us to do a much more reliable Section mismatch
      check in modpost. We are no longer dependent on the actual
      configuration of for example HOTPLUG.
      
      This has the effect that all users see much more
      Section mismatch warnings than before because they
      were almost all hidden when HOTPLUG was enabled.
      The advantage of this is that when building a piece
      of code then it is much more likely that the Section
      mismatch errors are spotted and the warnings will be
      felt less random of nature.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Cc: Greg KH <greg@kroah.com>
      Cc: Randy Dunlap <randy.dunlap@oracle.com>
      Cc: Adrian Bunk <bunk@kernel.org>
      eb8f6890
    • S
      kbuild: check section names consistently in modpost · 6c5bd235
      Sam Ravnborg 提交于
      Now that match() is introduced use it consistently so
      we can share the section name definitions.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      6c5bd235
    • S
      kbuild: introduce blacklisting in modpost · 10668220
      Sam Ravnborg 提交于
      Change the logic in modpost so we identify all the
      bad combinations of sections that refer to other
      sections.
      Compared to the previous approach we are much less
      dependent on knowledge of what additional sections
      the tool chain uses and thus we can keep the false
      positives low.
      
      The implmentation is changed to use a table based
      lookup and we now check all combinations in first
      pass so we no longer need separate passes for init
      and exit sections.
      
      Tested that the same warnings are generated for
      an allyesconfig build without CONFIG_HOTPLUG.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Cc: Randy Dunlap <randy.dunlap@oracle.com>
      Cc: Adrian Bunk <bunk@kernel.org>
      10668220
    • S
      kbuild: code refactoring in modpost · 5b24c071
      Sam Ravnborg 提交于
      Split a too long function up in smaller bits to make
      prgram logic easier to follow.
      A few related changes done due to parameter
      changes.
      
      No functional changes.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      5b24c071
    • S
      kbuild: try harder to find symbol names in modpost · 9ad21c3f
      Sam Ravnborg 提交于
      The relocation record sometimes contained an address
      which was not an exactly match for a symbol.
      
      Implment some simple logic such that if there
      is a symbol within 20 bytes of the address contained
      in the relocation record then print the name of this
      symbol.
      
      With this change modpost could find symbol names
      for the remaining .init.text symbols in my
      allyesconfig build for x86_64.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      9ad21c3f
    • S
      kbuild: fix so modpost can now check any .o file · d1f25e66
      Sam Ravnborg 提交于
      It is very convinient to say:
      scripts/mod/modpost mm/built-in.o
      
      to check if any section mismatch errors occured
      in mm/ (as an example).
      Fix it so this is possible again.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      d1f25e66
    • S
      kbuild: clean up modpost.c · df578e7d
      Sam Ravnborg 提交于
      akpm complained about overly long lines in modpost.c and
      when started additional style issues were fixed:
      
      o Updated my copyright
      o Removed unneeded {}
      o Drop assignments in if ()
      o Spaces around operators
      o Break long lines
      o locate * near variable not type
      o Fix a format specifier for sizeof()
      o Corrected placement of '{' and '}'
      o spaces to tabs (but use tabs only for indention)
      
      modpost.c is not checkpatch clean. Readability were favoured
      on top of checkpatch compliance.
      But checkpatch were used to find additional stuff to clean up.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      df578e7d
    • A
      kbuild: fix a buffer overflow in modpost · 666ab414
      Andi Kleen 提交于
      When passing an file name > 1k the stack could be overflowed.
      Not really a security issue, but still better plugged.
      Signed-off-by: NAndi Kleen <ak@suse.de>
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      666ab414
    • A
      kbuild: fix format string warnings in modpost · 58b7a68d
      Andi Kleen 提交于
      Fix wrong format strings in modpost exposed by the previous patch.
      Including one missing argument -- some random data was printed instead.
      Signed-off-by: NAndi Kleen <ak@suse.de>
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      58b7a68d
    • A
      kbuild: declare the modpost error functions as printf like · 6d9a89ea
      Andi Kleen 提交于
      This way gcc can warn for wrong format strings
      Signed-off-by: NAndi Kleen <ak@suse.de>
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      6d9a89ea
  17. 18 10月, 2007 1 次提交
    • T
      kbuild: modpost problem when symbols move from one module to another · 4b21960f
      Trent Piepho 提交于
      When part of build an external module tree, modpost first reads in the
      kernel's and then the external tree's Module.symvers files.  From these files
      it establishes a symbol => module mapping.  When it later reads in each module
      built and processes the symbols it finds, it discovers the symbol=>module
      mapping from Module.symvers and leaves it as it is.
      
      The problem comes with a module has been re-named or a symbol has moved from
      one module to another, since the Module.symvers file was generated.  modpost
      does not update the symbol=>module mapping when it finds the new location of
      the symbol when scanning the newly built modules.  This results in the module
      containing incorrect dependency information and the new Module.symvers file
      written by modpost will also contain the incorrect mappings, perpetuating the
      problem to the next build, and so on.
      
      When building the out of kernel development tree for kernel subsystem, like
      v4l-dvb or ALSA, deleting the external Module.symvers file before building
      (which the kernel build system doesn't do and shouldn't be necessary anyway),
      won't fix the problem.  modpost still reads the kernel's Module.symvers, and
      since we a building a kernel subsystem, it will define the same symbols as the
      external modules.
      Signed-off-by: NTrent Piepho <xyzzy@speakeasy.org>
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      4b21960f
  18. 13 10月, 2007 1 次提交
    • P
      kbuild: fix segfault in modpost · a83710e5
      Petr Stetiar 提交于
      Fix modpost segfault.
      
      Before:
      -------
      ynezz@ntbk:~/linux-2.6.git$ scripts/mod/modpost vmlinux ath_pci.o
      Segmentation fault
      
      After:
      ------
      ynezz@ntbk:~/linux-2.6.git$ scripts/mod/modpost vmlinux ath_pci.o
      FATAL: section header offset=815726848 in file 'ath_pci.o' is bigger then filesize=153968
      
      Sam: This seems to warn for a binutils issue. Anyway modpost should not
      segfault.
      Signed-off-by: NPetr Stetiar <ynezz@true.cz>
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      a83710e5
  19. 11 10月, 2007 1 次提交
    • P
      [NETNS]: Move some code into __init section when CONFIG_NET_NS=n · 4665079c
      Pavel Emelyanov 提交于
      With the net namespaces many code leaved the __init section,
      thus making the kernel occupy more memory than it did before.
      Since we have a config option that prohibits the namespace
      creation, the functions that initialize/finalize some netns
      stuff are simply not needed and can be freed after the boot.
      
      Currently, this is almost not noticeable, since few calls
      are no longer in __init, but when the namespaces will be
      merged it will be possible to free more code. I propose to
      use the __net_init, __net_exit and __net_initdata "attributes"
      for functions/variables that are not used if the CONFIG_NET_NS
      is not set to save more space in memory.
      
      The exiting functions cannot just reside in the __exit section,
      as noticed by David, since the init section will have
      references on it and the compilation will fail due to modpost
      checks. These references can exist, since the init namespace
      never dies and the exit callbacks are never called. So I
      introduce the __exit_refok attribute just like it is already
      done with the __init_refok.
      Signed-off-by: NPavel Emelyanov <xemul@openvz.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4665079c
  20. 01 8月, 2007 1 次提交
  21. 26 7月, 2007 2 次提交
    • S
      kbuild: fix modpost warnings for xtensa · cb7e51d8
      Sam Ravnborg 提交于
      The Xtensa architecture places literal pools in sections separate
      from the instructions. The corresponsing text sections, therefore,
      reference the .literal section, and we have to suppress those
      warnings.
      
      The naming convention defines the name for a literal
      section as .SECTION.literal, unless .SECTION is .text. In that case
      the name is only .literal. Using strncmp() instead of strcmp()
      to compare the from-section with .SECTION.init.refok in pattern 0
      should not cause any regressions for other architectures.
      
      We also need to suppress warnings for two informational
      sections (.xt.lit and .xt.prop) used by the Xtensa architecture.
      Signed-off-by: NChris Zankel <chris@zankel.net>
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      cb7e51d8
    • S
      kbuild: be more foregiving on init section naming · 83cda2bb
      Sam Ravnborg 提交于
      In the whitelist function of modpost now use the same
      check to identify init_section as in other places of modpost.
      This has the effect that we now recognize sections named
      .init.text.19 as init sections and we no longer warn
      when we see these.
      
      At the same time make surrounding code readable by dropping
      use of temporary flags.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      83cda2bb