1. 31 Oct, 2011 39 commits
    • Paul Gortmaker's avatar
      powerpc: fix implicit use of mutex.h by include/asm/spu.h · e415372a
      Paul Gortmaker authored
      We've been getting the header implicitly via module.h in the past
      but when we clean that up, we'll get this failure:
      
        CC      arch/powerpc/platforms/cell/beat_spu_priv1.o
      In file included from arch/powerpc/platforms/cell/beat_spu_priv1.c:22:
      arch/powerpc/include/asm/spu.h:190: error: field 'list_mutex' has incomplete type
      make[2]: *** [arch/powerpc/platforms/cell/beat_spu_priv1.o] Error 1
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      e415372a
    • Paul Gortmaker's avatar
      powerpc: fix implicit use of cache.h in kernel/firmware.c · cab2e052
      Paul Gortmaker authored
      This file only needs export.h to get EXPORT_SYMBOL, but in doing
      so, it uncovers an implicit use of linux/cache.h as follows:
      
       CC      arch/powerpc/kernel/firmware.o
      arch/powerpc/kernel/firmware.c:20: error: expected '=', ',', ';', 'asm' or '__attribute__' before '__read_mostly'
      arch/powerpc/kernel/firmware.c:21: error: expected '=', ',', ';', 'asm' or '__attribute__' before '__used'
      make[2]: *** [arch/powerpc/kernel/firmware.o] Error 1
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      cab2e052
    • Paul Gortmaker's avatar
      powerpc: fix implicit notifier use in converting to export.h · 2a7156b9
      Paul Gortmaker authored
      We can convert this file to using export.h since it only wants
      to export symbols, but when we do we'll see also that it was
      implicitly getting notifier.h from module.h via this failure:
      
        CC      arch/powerpc/platforms/cell/spu_notify.o
      arch/powerpc/platforms/cell/spu_notify.c:28: warning: type defaults to 'int' in declaration of 'BLOCKING_NOTIFIER_HEAD'
      arch/powerpc/platforms/cell/spu_notify.c:28: warning: parameter names (without types) in function declaration
      arch/powerpc/platforms/cell/spu_notify.c: In function 'spu_switch_notify':
      arch/powerpc/platforms/cell/spu_notify.c:32: error: implicit declaration of function 'blocking_notifier_call_chain'
      arch/powerpc/platforms/cell/spu_notify.c:32: error: 'spu_switch_notifier' undeclared (first use in this function)
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      2a7156b9
    • Paul Gortmaker's avatar
      powerpc: cell/beat_wrapper.h is implicitly using memcpy functions · 08f1e55c
      Paul Gortmaker authored
      This has been relying on the fact that the parent file would have
      module.h (and thus nearly everything) present.  But once we fix that,
      we'll get stuck with this failure:
      
      In file included from arch/powerpc/platforms/cell/beat_spu_priv1.c:26:
      arch/powerpc/platforms/cell/beat_wrapper.h: In function 'beat_eeprom_write':
      arch/powerpc/platforms/cell/beat_wrapper.h:160: error: implicit declaration of function 'memcpy'
      
      and many more instances of the same.  Fix it in advance.
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      08f1e55c
    • Paul Gortmaker's avatar
      powerpc: Fix up implicit sched.h users · 62fe91bb
      Paul Gortmaker authored
      They are getting it through device.h --> module.h path, but we want
      to clean that up.  This is a sample of what will happen if we don't:
      
        pseries/iommu.c: In function 'tce_build_pSeriesLP':
        pseries/iommu.c:136: error: implicit declaration of function 'show_stack'
      
        pseries/eeh.c: In function 'eeh_token_to_phys':
        pseries/eeh.c:359: error: 'init_mm' undeclared (first use in this function)
      
        pseries/eeh_event.c: In function 'eeh_event_handler':
        pseries/eeh_event.c:63: error: implicit declaration of function 'daemonize'
        pseries/eeh_event.c:64: error: implicit declaration of function 'set_current_state'
        pseries/eeh_event.c:64: error: 'TASK_INTERRUPTIBLE' undeclared (first use in this function)
        pseries/eeh_event.c:64: error: (Each undeclared identifier is reported only once
        pseries/eeh_event.c:64: error: for each function it appears in.)
        pseries/eeh_event.c: In function 'eeh_thread_launcher':
        pseries/eeh_event.c:109: error: 'CLONE_KERNEL' undeclared (first use in this function)
      
        hotplug-cpu.c: In function 'pseries_mach_cpu_die':
        hotplug-cpu.c:115: error: implicit declaration of function 'idle_task_exit'
      
        kernel/swsusp_64.c: In function 'do_after_copyback':
        kernel/swsusp_64.c:17: error: implicit declaration of function 'touch_softlockup_watchdog'
      
        cell/spufs/context.c: In function 'alloc_spu_context':
        cell/spufs/context.c:60: error: implicit declaration of function 'get_task_mm'
        cell/spufs/context.c:60: warning: assignment makes pointer from integer without a cast
        cell/spufs/context.c: In function 'spu_forget':
        cell/spufs/context.c:127: error: implicit declaration of function 'mmput'
      
        pasemi/dma_lib.c: In function 'pasemi_dma_stop_chan':
        pasemi/dma_lib.c:332: error: implicit declaration of function 'cond_resched'
      
        sysdev/fsl_lbc.c: In function 'fsl_lbc_ctrl_irq':
        sysdev/fsl_lbc.c:247: error: 'TASK_NORMAL' undeclared (first use in this function)
      
      Add in sched.h so these get the definitions they are looking for.
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      62fe91bb
    • Paul Gortmaker's avatar
      powerpc: Fix up implicit stat.h users · b56eade5
      Paul Gortmaker authored
      They get it via module.h (via device.h) but we want to clean that up.
      When we do, we'll get things like:
      
      ibmebus.c:314: error: 'S_IWUSR' undeclared here (not in a function)
      vio.c:972: error: 'S_IWUSR' undeclared here (not in a function)
      
      so add in the stat header it is using explicitly in advance.
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      b56eade5
    • Paul Gortmaker's avatar
      powerpc: Fix up modules that should be including module.h · 7dfe293c
      Paul Gortmaker authored
      So that we can clean up the header files and not be relying
      on implicit includes from device.h ---> module.h
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      7dfe293c
    • Paul Gortmaker's avatar
      powerpc: include export.h for files using EXPORT_SYMBOL/THIS_MODULE · 93087948
      Paul Gortmaker authored
      Fix failures in powerpc associated with the previously allowed
      implicit module.h presence that now lead to things like this:
      
      arch/powerpc/mm/mmu_context_hash32.c:76:1: error: type defaults to 'int' in declaration of 'EXPORT_SYMBOL_GPL'
      arch/powerpc/mm/tlb_hash32.c:48:1: error: type defaults to 'int' in declaration of 'EXPORT_SYMBOL'
      arch/powerpc/kernel/pci_32.c:51:1: error: type defaults to 'int' in declaration of 'EXPORT_SYMBOL_GPL'
      arch/powerpc/kernel/iomap.c:36:1: error: type defaults to 'int' in declaration of 'EXPORT_SYMBOL'
      arch/powerpc/platforms/44x/canyonlands.c:126:1: error: type defaults to 'int' in declaration of 'EXPORT_SYMBOL'
      arch/powerpc/kvm/44x.c:168:59: error: 'THIS_MODULE' undeclared (first use in this function)
      
      [with several contibutions from Stephen Rothwell <sfr@canb.auug.org.au>]
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      93087948
    • Paul Gortmaker's avatar
      powerpc: add export.h to files making use of EXPORT_SYMBOL · 66b15db6
      Paul Gortmaker authored
      With module.h being implicitly everywhere via device.h, the absence
      of explicitly including something for EXPORT_SYMBOL went unnoticed.
      Since we are heading to fix things up and clean module.h from the
      device.h file, we need to explicitly include these files now.
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      66b15db6
    • Paul Gortmaker's avatar
      powerpc: io-workarounds.c was implicitly getting init_mm · 333a1518
      Paul Gortmaker authored
      It was coming in via device.h --> module.h etc. but we want to
      clean that up.  So explicitly include the header where init_mm
      is being declared.
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      333a1518
    • Paul Gortmaker's avatar
      x86: efi_32.c is implicitly getting asm/desc.h via module.h · 783ac47c
      Paul Gortmaker authored
      We want to clean up the chain of includes stumbling through
      module.h, and when we do that, we'll see:
      
        CC      arch/x86/platform/efi/efi_32.o
        efi/efi_32.c: In function ‘efi_call_phys_prelog’:
        efi/efi_32.c:80: error: implicit declaration of function ‘get_cpu_gdt_table’
        efi/efi_32.c:82: error: implicit declaration of function ‘load_gdt’
        make[4]: *** [arch/x86/platform/efi/efi_32.o] Error 1
      
      Include asm/desc.h so that there are no implicit include assumptions.
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      783ac47c
    • Paul Gortmaker's avatar
      x86: fix up files really needing to include module.h · 7c52d551
      Paul Gortmaker authored
      These files aren't just exporting symbols -- they are also defining
      a MODULE_LICENSE etc. so give them the full module.h file.
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      7c52d551
    • Paul Gortmaker's avatar
      x86: Fix files explicitly requiring export.h for EXPORT_SYMBOL/THIS_MODULE · 69c60c88
      Paul Gortmaker authored
      These files were implicitly getting EXPORT_SYMBOL via device.h
      which was including module.h, but that will be fixed up shortly.
      
      By fixing these now, we can avoid seeing things like:
      
      arch/x86/kernel/rtc.c:29: warning: type defaults to ‘int’ in declaration of ‘EXPORT_SYMBOL’
      arch/x86/kernel/pci-dma.c:20: warning: type defaults to ‘int’ in declaration of ‘EXPORT_SYMBOL’
      arch/x86/kernel/e820.c:69: warning: type defaults to ‘int’ in declaration of ‘EXPORT_SYMBOL_GPL’
      
      [ with input from Randy Dunlap <rdunlap@xenotime.net> and also
        from Stephen Rothwell <sfr@canb.auug.org.au> ]
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      69c60c88
    • Paul Gortmaker's avatar
      x86: fix implicit include of <linux/topology.h> in vsyscall_64 · 29574022
      Paul Gortmaker authored
      In removing the presence of <linux/module.h> from some of the
      more common <linux/something.h> files, this implict include
      of <linux/topology.h> was uncovered.
      
        CC      arch/x86/kernel/vsyscall_64.o
        arch/x86/kernel/vsyscall_64.c: In function ‘vsyscall_set_cpu’:
        arch/x86/kernel/vsyscall_64.c:259: error: implicit declaration of function ‘cpu_to_node’
      
      Explicitly call it out so the cleanup can take place.
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      29574022
    • Paul Gortmaker's avatar
      acpi: add export.h to files using THIS_MODULE/EXPORT_SYMBOL · 214f2c90
      Paul Gortmaker authored
      These files were relying on module.h to come in via the path
      in an include/acpi header file, but we don't want to have
      instances of module.h being included from include/* files
      if it can be avoided.  Have the files include export.h instead.
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      214f2c90
    • Paul Gortmaker's avatar
      acpi: downgrade files from module.h to export.h where possible. · 067d7561
      Paul Gortmaker authored
      If a file is only exporting symbols and not using the core
      modular infrastructure, it can get by with just including
      the smaller export.h header, which is a lot smaller than the
      module.h header.
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      067d7561
    • Paul Gortmaker's avatar
      acpi: delete module.h include from files explicitly not needing it · c0d12cc6
      Paul Gortmaker authored
      Files which aren't actually using infrastructure from module.h
      shouldn't include it, as it is a big header with lots of child
      includes spawned off.
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      c0d12cc6
    • Paul Gortmaker's avatar
      acpi: add module.h to files implicitly using/relying on it. · cc4b859c
      Paul Gortmaker authored
      These files are using standard module API things like MODULE_AUTHOR
      etc. and so should not be relying on an implicit presence of the
      module.h header.
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      cc4b859c
    • Paul Gortmaker's avatar
      fs: add module.h to files that were implicitly using it · 143cb494
      Paul Gortmaker authored
      Some files were using the complete module.h infrastructure without
      actually including the header at all.  Fix them up in advance so
      once the implicit presence is removed, we won't get failures like this:
      
        CC [M]  fs/nfsd/nfssvc.o
      fs/nfsd/nfssvc.c: In function 'nfsd_create_serv':
      fs/nfsd/nfssvc.c:335: error: 'THIS_MODULE' undeclared (first use in this function)
      fs/nfsd/nfssvc.c:335: error: (Each undeclared identifier is reported only once
      fs/nfsd/nfssvc.c:335: error: for each function it appears in.)
      fs/nfsd/nfssvc.c: In function 'nfsd':
      fs/nfsd/nfssvc.c:555: error: implicit declaration of function 'module_put_and_exit'
      make[3]: *** [fs/nfsd/nfssvc.o] Error 1
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      143cb494
    • Paul Gortmaker's avatar
      fs: add export.h to files using EXPORT_SYMBOL/THIS_MODULE macros · afeacc8c
      Paul Gortmaker authored
      These files were getting <linux/module.h> via an implicit include
      path, but we want to crush those out of existence since they cost
      time during compiles of processing thousands of lines of headers
      for no reason.  Give them the lightweight header that just contains
      the EXPORT_SYMBOL infrastructure.
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      afeacc8c
    • Paul Gortmaker's avatar
      net: fix implicit kmod.h usage in bridge/br_stp_if.c · 79bb1ee4
      Paul Gortmaker authored
      To fix this, once the implicit presence of module.h is removed:
      
      net/bridge/br_stp_if.c: In function ‘br_stp_start’:
      net/bridge/br_stp_if.c:131: error: implicit declaration of function ‘call_usermodehelper’
      net/bridge/br_stp_if.c:131: error: ‘UMH_WAIT_PROC’ undeclared (first use in this function)
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      79bb1ee4
    • Paul Gortmaker's avatar
      net: Add export.h for EXPORT_SYMBOL/THIS_MODULE to non-modules · bc3b2d7f
      Paul Gortmaker authored
      These files are non modular, but need to export symbols using
      the macros now living in export.h -- call out the include so
      that things won't break when we remove the implicit presence
      of module.h from everywhere.
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      bc3b2d7f
    • Paul Gortmaker's avatar
      net: add moduleparam.h for users of module_param/MODULE_PARM_DESC · d9b93842
      Paul Gortmaker authored
      These files were getting access to these two via the implicit
      presence of module.h everywhere.  They aren't modules, so they
      don't need the full module.h inclusion though.
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      d9b93842
    • Paul Gortmaker's avatar
      net: Fix files explicitly needing to include module.h · 3a9a231d
      Paul Gortmaker authored
      With calls to modular infrastructure, these files really
      needs the full module.h header.  Call it out so some of the
      cleanups of implicit and unrequired includes elsewhere can be
      cleaned up.
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      3a9a231d
    • Paul Gortmaker's avatar
      kernel: Fix files explicitly needing EXPORT_SYMBOL infrastructure · 6e5fdeed
      Paul Gortmaker authored
      These files were getting <linux/module.h> via an implicit non-obvious
      path, but we want to crush those out of existence since they cost
      time during compiles of processing thousands of lines of headers
      for no reason.  Give them the lightweight header that just contains
      the EXPORT_SYMBOL infrastructure.
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      6e5fdeed
    • Paul Gortmaker's avatar
      kernel: fix up module header handling in rcutiny files · bdfa97bf
      Paul Gortmaker authored
      The file rcutiny.c does not need moduleparam.h header, as
      there are no modparams in this file.
      
      However rcutiny_plugin.h does define a module_init() and
      a module_exit() and it uses the various MODULE_ macros, so
      it really does need module.h included.
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      bdfa97bf
    • Paul Gortmaker's avatar
      kernel: params.c needs module.h not moduleparam.h · 72a59aaa
      Paul Gortmaker authored
      Through various other implicit include paths, some files were
      getting the full module.h file, and hence living the illusion
      that they really only needed moduleparam.h -- but the reality
      is that once you remove the module.h presence, these show up:
      
      kernel/params.c:583: warning: ‘struct module_kobject’ declared inside parameter list
      
      Such files really require module.h so simply make it so.  As the
      file module.h grabs moduleparam.h on the fly, all will be well.
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      72a59aaa
    • Paul Gortmaker's avatar
      kernel: ksysfs.c is implicitly using stat.h · 1596425f
      Paul Gortmaker authored
      With the module.h usage cleanup, we'll get this:
      
      kernel/ksysfs.c:161: error: ‘S_IRUGO’ undeclared here (not in a function)
      make[2]: *** [kernel/ksysfs.o] Error 1
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      1596425f
    • Paul Gortmaker's avatar
      kernel: fix two implicit header assumptions in irq_work.c · 967d1f90
      Paul Gortmaker authored
      Up until now, this file was getting percpu.h because nearly every
      file was implicitly getting module.h (and all its sub-includes).
      But we want to clean that up, so call out percpu.h explicitly.
      Otherwise we'll get things like this on an ARM build:
      
      kernel/irq_work.c:48: error: expected declaration specifiers or '...' before 'irq_work_list'
      kernel/irq_work.c:48: warning: type defaults to 'int' in declaration of 'DEFINE_PER_CPU'
      
      The same thing was happening for builds on ARM for asm/processor.h
      
      kernel/irq_work.c: In function 'irq_work_sync':
      kernel/irq_work.c:166: error: implicit declaration of function 'cpu_relax'
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      967d1f90
    • Paul Gortmaker's avatar
      kernel: fix several implicit usasges of kmod.h · 74da1ff7
      Paul Gortmaker authored
      These files were implicitly relying on <linux/kmod.h> coming in via
      module.h, as without it we get things like:
      
      kernel/power/suspend.c:100: error: implicit declaration of function ‘usermodehelper_disable’
      kernel/power/suspend.c:109: error: implicit declaration of function ‘usermodehelper_enable’
      kernel/power/user.c:254: error: implicit declaration of function ‘usermodehelper_disable’
      kernel/power/user.c:261: error: implicit declaration of function ‘usermodehelper_enable’
      
      kernel/sys.c:317: error: implicit declaration of function ‘usermodehelper_disable’
      kernel/sys.c:1816: error: implicit declaration of function ‘call_usermodehelper_setup’
      kernel/sys.c:1822: error: implicit declaration of function ‘call_usermodehelper_setfns’
      kernel/sys.c:1824: error: implicit declaration of function ‘call_usermodehelper_exec’
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      74da1ff7
    • Paul Gortmaker's avatar
      kernel: Add <linux/module.h> to files using it implicitly · 56d82e00
      Paul Gortmaker authored
      These files are doing things like module_put and try_module_get
      so they need to call out the module.h for explicit inclusion,
      rather than getting it via <linux/device.h> which we ideally want
      to remove the module.h inclusion from.
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      56d82e00
    • Paul Gortmaker's avatar
      kernel: Map most files to use export.h instead of module.h · 9984de1a
      Paul Gortmaker authored
      The changed files were only including linux/module.h for the
      EXPORT_SYMBOL infrastructure, and nothing else.  Revector them
      onto the isolated export header for faster compile times.
      
      Nothing to see here but a whole lot of instances of:
      
        -#include <linux/module.h>
        +#include <linux/export.h>
      
      This commit is only changing the kernel dir; next targets
      will probably be mm, fs, the arch dirs, etc.
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      9984de1a
    • Paul Gortmaker's avatar
      mm: fix implicit stat.h usage in dmapool.c · 7c77509c
      Paul Gortmaker authored
      The removal of the implicitly everywhere module.h and its child includes
      will reveal this implicit stat.h usage:
      
      mm/dmapool.c:108: error: ‘S_IRUGO’ undeclared here (not in a function)
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      7c77509c
    • Paul Gortmaker's avatar
      mm: Map most files to use export.h instead of module.h · b95f1b31
      Paul Gortmaker authored
      The files changed within are only using the EXPORT_SYMBOL
      macro variants.  They are not using core modular infrastructure
      and hence don't need module.h but only the export.h header.
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      b95f1b31
    • Paul Gortmaker's avatar
      mm: Add export.h for EXPORT_SYMBOL to active symbol exporters · b9e15baf
      Paul Gortmaker authored
      These files were getting <linux/module.h> via an implicit include
      path, but we want to crush those out of existence since they cost
      time during compiles of processing thousands of lines of headers
      for no reason.  Give them the lightweight header that just contains
      the EXPORT_SYMBOL infrastructure.
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      b9e15baf
    • Paul Gortmaker's avatar
      mm: delete various needless include <linux/module.h> · e25934a5
      Paul Gortmaker authored
      There is nothing modular in these files, and no reason to drag
      in all the 357 headers that module.h brings with it, since
      it just slows down compiles.
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      e25934a5
    • Paul Gortmaker's avatar
      range: fix bogus misuse of module.h to get printk() · 9a418455
      Paul Gortmaker authored
      This file isn't doing anything with modules and so it should
      not be including <linux/module.h> just to get basic stuff
      like printk() and min/max.  Revector it to <linux/kernel.h>.
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      9a418455
    • Paul Gortmaker's avatar
      module.h: relocate MODULE_PARM_DESC into moduleparam.h · 639938eb
      Paul Gortmaker authored
      There are files which use module_param and MODULE_PARM_DESC
      back to back.  They only include moduleparam.h which makes sense,
      but the implicit presence of module.h everywhere hid the fact
      that MODULE_PARM_DESC wasn't in moduleparam.h at all.  Relocate
      the macro to moduleparam.h so that the moduleparam infrastructure
      can be used independently of module.h
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      639938eb
    • Paul Gortmaker's avatar
      module.h: split out the EXPORT_SYMBOL into export.h · f5016932
      Paul Gortmaker authored
      A lot of files pull in module.h when all they are really
      looking for is the basic EXPORT_SYMBOL functionality. The
      recent data from Ingo[1] shows that this is one of several
      instances that has a significant impact on compile times,
      and it should be targeted for factoring out (as done here).
      
      Note that several commonly used header files in include/*
      directly include <linux/module.h> themselves (some 34 of them!)
      The most commonly used ones of these will have to be made
      independent of module.h before the full benefit of this change
      can be realized.
      
      We also transition THIS_MODULE from module.h to export.h,
      since there are lots of files with subsystem structs that
      in turn will have a struct module *owner and only be doing:
      
      	.owner = THIS_MODULE;
      
      and absolutely nothing else modular. So, we also want to have
      the THIS_MODULE definition present in the lightweight header.
      
      [1] https://lkml.org/lkml/2011/5/23/76Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      f5016932
  2. 30 Oct, 2011 1 commit