11 Apr, 2009

1 commit


31 Mar, 2009

1 commit

  • 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: Rusty Russell

    Rusty Russell
     

28 Mar, 2009

1 commit


25 Mar, 2009

1 commit

  • Now platform_device is being widely used on SoC processors where the
    peripherals are attached to the system bus, which is simple enough.

    However, silicon IPs for these SoCs are usually shared heavily across
    a family of processors, even products from different companies. This
    makes the original simple driver name based matching insufficient, or
    simply not straight-forward.

    Introduce a module id table for platform devices, and makes it clear
    that a platform driver is able to support some shared IP and handle
    slight differences across different platforms (by 'driver_data').
    Module alias is handled automatically when a MODULE_DEVICE_TABLE()
    is defined.

    To not disturb the current platform drivers too much, the matched id
    entry is recorded and can be retrieved by platform_get_device_id().

    Signed-off-by: Eric Miao
    Cc: Kay Sievers
    Cc: Ben Dooks
    Signed-off-by: Greg Kroah-Hartman

    Eric Miao
     

23 Feb, 2009

1 commit


17 Feb, 2009

1 commit


06 Feb, 2009

1 commit

  • 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: Pawel Dziekonski
    Signed-off-by: Tejun Heo
    Signed-off-by: Ingo Molnar

    Tejun Heo
     

21 Jan, 2009

1 commit


30 Oct, 2008

1 commit

  • This fixes a compile time warning which occurs whenever a static library
    is linked into a kernel module. MODPOST tries to look for a
    "..cmd" file to look for its dependencies, but that file
    doesn't exist or get generated for static libraries.

    This patch prevents modpost from looking for a .cmd file when a module is
    linked with a static library

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Ashutosh Naik
    Cc: Rusty Russell
    Signed-off-by: Andrew Morton
    Signed-off-by: Sam Ravnborg

    Ashutosh Naik
     

18 Oct, 2008

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6: (25 commits)
    staging: at76_usb wireless driver
    Staging: workaround build system bug
    Staging: Lindent sxg.c
    Staging: SLICOSS: Call pci_release_regions at driver exit
    Staging: SLICOSS: Fix remaining type names
    Staging: SLICOSS: Fix warnings due to static usage
    Staging: SLICOSS: lots of checkpatch fixes
    Staging: go7007 v4l fixes
    Staging: Fix gcc warnings in sxg
    Staging: add echo cancelation module
    Staging: add wlan-ng prism2 usb driver
    Staging: add w35und wifi driver
    Staging: USB/IP: add host driver
    Staging: USB/IP: add client driver
    Staging: USB/IP: add common functions needed
    Staging: add the go7007 video driver
    Staging: add me4000 pci data collection driver
    Staging: add me4000 firmware files
    Staging: add sxg network driver
    Staging: add Alacritech slicoss network driver
    ...

    Fixed up conflicts due to taint flags changes and MAINTAINERS cleanup in
    MAINTAINERS, include/linux/kernel.h and kernel/panic.c.

    Linus Torvalds
     

15 Oct, 2008

1 commit


14 Oct, 2008

1 commit


13 Oct, 2008

1 commit

  • This makes modpost handle MODULE_DEVICE_TABLE(dmi, xxxx).

    I had to change the string pointers in the match table to char arrays,
    and picked a size of 79 bytes almost at random -- do we need to make it
    bigger than that? I was a bit concerned about the 'bloat' this
    introduces into the match tables, but they should all be __initdata so
    it shouldn't matter too much.

    (Actually, modpost does go through the relocations and look at most of
    them; it wouldn't be impossible to make it handle string pointers -- but
    doesn't seem to be worth the effort, since they're __initdata).

    Signed-off-by: David Woodhouse

    David Woodhouse
     

11 Oct, 2008

1 commit

  • 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
    Cc: Jeff Mahoney
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

07 Oct, 2008

1 commit

  • * 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 d35cb360c29956510b2fe1a953bd4968536f7216)

    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: Mathieu Desnoyers
    Tested-by: "Theodore Ts'o"
    CC: Greg KH
    CC: David Smith
    CC: Roland McGrath
    CC: Sam Ravnborg
    CC: Wenji Huang
    CC: Takashi Nishiie
    Signed-off-by: Linus Torvalds

    Mathieu Desnoyers
     

22 Aug, 2008

1 commit


31 Jul, 2008

1 commit


25 Jul, 2008

1 commit

  • Trying to compile the v850 port brings many compile errors, one of them exists
    since at least kernel 2.6.19.

    There also seems to be noone willing to bring this port back into a usable
    state.

    This patch therefore removes the v850 port.

    If anyone ever decides to revive the v850 port the code will still be
    available from older kernels, and it wouldn't be impossible for the port to
    reenter the kernel if it would become actively maintained again.

    Signed-off-by: Adrian Bunk
    Acked-by: Greg Ungerer
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     

23 Jul, 2008

2 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6: (79 commits)
    arm: bus_id -> dev_name() and dev_set_name() conversions
    sparc64: fix up bus_id changes in sparc core code
    3c59x: handle pci_name() being const
    MTD: handle pci_name() being const
    HP iLO driver
    sysdev: Convert the x86 mce tolerant sysdev attribute to generic attribute
    sysdev: Add utility functions for simple int/ulong variable sysdev attributes
    sysdev: Pass the attribute to the low level sysdev show/store function
    driver core: Suppress sysfs warnings for device_rename().
    kobject: Transmit return value of call_usermodehelper() to caller
    sysfs-rules.txt: reword API stability statement
    debugfs: Implement debugfs_remove_recursive()
    HOWTO: change email addresses of James in HOWTO
    always enable FW_LOADER unless EMBEDDED=y
    uio-howto.tmpl: use unique output names
    uio-howto.tmpl: use standard copyright/legal markings
    sysfs: don't call notify_change
    sysdev: fix debugging statements in registration code.
    kobject: should use kobject_put() in kset-example
    kobject: reorder kobject to save space on 64 bit builds
    ...

    Linus Torvalds
     
  • 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
    Cc: [2.6.25.x, 2.6.26.x]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mathieu Desnoyers
     

22 Jul, 2008

1 commit

  • Along with the non-modalias conformant "pnp:*" aliases, we add "acpi:*"
    entries to PNP drivers, to allow module autoloading by ACPI PNP device
    entries, which export proper modalias information, without any specific
    userspace modprobe mangling.

    Cc: Adam Belay
    Cc: Thomas Renninger
    Signed-off-by: Kay Sievers
    Signed-off-by: Greg Kroah-Hartman

    Kay Sievers
     

14 Jul, 2008

1 commit

  • Add modalias and subchannel type attributes for all subchannels.
    I/O subchannel specific attributes are now created in
    io_subchannel_probe(). modalias and subchannel type are also
    added to the uevent for the css bus. Also make the css modalias
    known.

    Signed-off-by: Cornelia Huck
    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Heiko Carstens

    Cornelia Huck
     

12 Jun, 2008

1 commit

  • Kumar Gala 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: Sam Ravnborg
    Cc: Kumar Gala
    Cc: Paul Mackerras

    Sam Ravnborg
     

11 May, 2008

1 commit

  • 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 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: Andi Kleen
    Signed-off-by: Sam Ravnborg

    Andi Kleen
     

04 May, 2008

1 commit

  • Not all device types need a wildcard at the end of their module
    aliases. In particular, for i2c module aliases, the trailing wildcard
    is not only unneeded, it could also cause the wrong driver to be
    loaded.

    As I2C devices have no IDs, i2c module aliases are simple, arbitrary
    device names. For example:

    $ /sbin/modinfo lm90
    filename: /lib/modules/2.6.25-git18/kernel/drivers/hwmon/lm90.ko
    author: Jean Delvare
    description: LM90/ADM1032 driver
    license: GPL
    vermagic: 2.6.25-git18 mod_unload
    depends: hwmon
    alias: i2c:lm90*
    alias: i2c:adm1032*
    alias: i2c:lm99*
    alias: i2c:lm86*
    alias: i2c:max6657*
    alias: i2c:adt7461*
    alias: i2c:max6680*
    $

    This would cause trouble if one I2C chip name matches the beginning of
    another I2C chip name and both chips are supported by different
    drivers. For example, an i2c device named lm9042 would cause the lm90
    driver to be loaded, while it doesn't support that device. This case
    has yet to be seen in practice, but still, I'd like to fix it now. The
    cleanest fix is to remove the trailing wildcard from i2c module aliases.

    Here's a patch doing this.

    Not all device type aliases need a trailing wildcard, in particular
    the i2c aliases don't. Don't add a wildcard by default in do_table(),
    instead let each device type handler add it if needed.

    I have tested types acpi, dmi, eisa, i2c, ide, ieee1394, input, pci,
    pcmcia, platform, pnp, scsi, serio, ssb and usb. Other types (ccw, of,
    vio, parisc, sdio and virtio) are untested.
    Signed-off-by: Jean Delvare
    Acked-by: Jochen Friedrich
    Signed-off-by: Sam Ravnborg

    Jean Delvare
     

30 Apr, 2008

1 commit

  • Based on earlier work by Jon Smirl and Jochen Friedrich.

    This patch allows new-style i2c chip drivers to have alias names using
    the official kernel aliasing system and MODULE_DEVICE_TABLE(). At this
    point, the old i2c driver binding scheme (driver_name/type) is still
    supported.

    Signed-off-by: Jean Delvare
    Cc: Jochen Friedrich
    Cc: Jon Smirl
    Cc: Kay Sievers

    Jean Delvare
     

27 Apr, 2008

1 commit


26 Apr, 2008

2 commits

  • 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: Richard Hacker
    Signed-off-by: Sam Ravnborg

    Richard Hacker
     
  • 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: Sam Ravnborg
    Cc: Adrian Bunk

    Sam Ravnborg
     

20 Apr, 2008

1 commit

  • The current PNP combined card + devices module aliase can
    never ever match anything, because these values are not available
    all at the same time to request a module.

    Instead of adding the combined alias, we add the device id's
    all as individual aliases. Device id's are exported by the PNP
    bus and can now properly used to request the loading of a
    matching module.

    The module snd-sbawe currently exports aliases, which can never
    match anything:
    alias: pnp:cCTLXXXXdCTL0045dCTL0022*
    alias: pnp:cCTLXXXXdCTL0044dCTL0023*
    alias: pnp:cCTLXXXXdCTL0042dCTL0022*
    alias: pnp:cCTLXXXXdCTL0041dCTL0021*
    alias: pnp:cCTLXXXXdCTL0031dCTL0021*
    alias: pnp:cCTL00eddCTL0041dCTL0070*
    alias: pnp:cCTL00e9dCTL0045dCTL0022*
    alias: pnp:cCTL00e4dCTL0045dCTL0022*
    alias: pnp:cCTL00c7dCTL0045dCTL0022*
    alias: pnp:cCTL00c5dCTL0045dCTL0022*
    alias: pnp:cCTL00c3dCTL0045dCTL0022*
    alias: pnp:cCTL00c1dCTL0042dCTL0022*
    alias: pnp:cCTL00b2dCTL0044dCTL0023*
    alias: pnp:cCTL009edCTL0044dCTL0023*
    alias: pnp:cCTL009ddCTL0042dCTL0022*
    alias: pnp:cCTL009fdCTL0041dCTL0021*
    alias: pnp:cCTL009cdCTL0041dCTL0021*
    alias: pnp:cCTL009adCTL0041dCTL0021*
    alias: pnp:cCTL0054dCTL0031dCTL0021*
    alias: pnp:cCTL0048dCTL0031dCTL0021*
    alias: pnp:cCTL0047dCTL0031dCTL0021*
    alias: pnp:cCTL0046dCTL0031dCTL0021*
    alias: pnp:cCTL0045dCTL0031dCTL0021*
    alias: pnp:cCTL0044dCTL0031dCTL0021*
    alias: pnp:cCTL0043dCTL0031dCTL0021*
    alias: pnp:cCTL0042dCTL0031dCTL0021*
    alias: pnp:cCTL0039dCTL0031dCTL0021*
    alias: pnp:cCTL0035dCTL0031dCTL0021*

    With this patch it exports only the device id's, as properly
    matchable aliases:
    alias: pnp:dCTL0070*
    alias: pnp:dCTL0045*
    alias: pnp:dCTL0023*
    alias: pnp:dCTL0044*
    alias: pnp:dCTL0022*
    alias: pnp:dCTL0042*
    alias: pnp:dCTL0041*
    alias: pnp:dCTL0021*
    alias: pnp:dCTL0031*

    Now, the exported value of the PNP bus can be used to autoload
    a matching module:
    $ modprobe --first-time -n -v pnp:dCTL0045
    insmod /lib/modules/2.6.24-rc6-g5b825ed2-dirty/kernel/sound/core/snd-rawmidi.ko
    insmod /lib/modules/2.6.24-rc6-g5b825ed2-dirty/kernel/sound/drivers/mpu401/snd-mpu401-uart.ko
    insmod /lib/modules/2.6.24-rc6-g5b825ed2-dirty/kernel/sound/core/snd-hwdep.ko
    insmod /lib/modules/2.6.24-rc6-g5b825ed2-dirty/kernel/sound/isa/sb/snd-sb-common.ko
    insmod /lib/modules/2.6.24-rc6-g5b825ed2-dirty/kernel/sound/isa/sb/snd-sb16-csp.ko
    insmod /lib/modules/2.6.24-rc6-g5b825ed2-dirty/kernel/sound/isa/sb/snd-sb16-dsp.ko
    insmod /lib/modules/2.6.24-rc6-g5b825ed2-dirty/kernel/sound/drivers/opl3/snd-opl3-lib.ko
    insmod /lib/modules/2.6.24-rc6-g5b825ed2-dirty/kernel/sound/isa/sb/snd-sbawe.ko

    $ grep CTL0045 /sys/bus/pnp/devices/*/id
    /sys/bus/pnp/devices/01:01.00/id:CTL0045

    Signed-off-by: Kay Sievers
    Signed-off-by: Greg Kroah-Hartman

    Kay Sievers
     

24 Mar, 2008

1 commit

  • The module alias support in the kernel have a consistency
    check where it is checked that the size of a structure
    in the kernel and on the build host are the same.
    For cross builds this check does not make sense so detect
    when we do cross builds and silently skip the check in these
    situations.
    This fixes a build bug for a wireless driver when cross building
    for arm.

    Acked-by: Michael Buesch
    Tested-by: Gordon Farquharson
    Signed-off-by: Sam Ravnborg
    Cc: stable@kernel.org

    Sam Ravnborg
     

20 Feb, 2008

1 commit

  • 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: Geert Uytterhoeven
    Signed-off-by: Sam Ravnborg

    Geert Uytterhoeven
     

14 Feb, 2008

1 commit

  • 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: Roland McGrath
    Signed-off-by: Mathieu Desnoyers
    Cc: David Smith
    Cc: Sam Ravnborg
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mathieu Desnoyers
     

09 Feb, 2008

2 commits


03 Feb, 2008

2 commits


02 Feb, 2008

1 commit

  • Some crazy devices in the wild have a vendor id of 0x0000. If we try to
    add a module alias with this id, we just can't do it due to a check in
    the file2alias.c file. Change the test to verify that both the vendor
    and product ids are 0x0000 to show a real "blank" module alias.

    Note, the module-init-tools package also needs to be changed to properly
    generate the depmod tables.

    Cc: Janusz
    Cc: stable
    Cc: Jon Masters
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

29 Jan, 2008

2 commits

  • 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 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: Sam Ravnborg

    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: Sam Ravnborg

    Sam Ravnborg