01 Sep, 2007

1 commit

  • Avoid setting the value if the symbol doesn't need to be changed or can't
    be changed. Later choices may change the dependencies and thus the
    possible input range.

    make oldconfig from a 2.6.22 .config with CONFIG_HOTPLUG_CPU not set
    was in some configurations setting CONFIG_HOTPLUG_CPU=y without asking,
    even when there was no actual requirement for CONFIG_HOTPLUG_CPU.
    This was triggered by SUSPEND_SMP that does a select HOTPLUG_CPU.

    Signed-off-by: Roman Zippel
    Tested-by: Hugh Dickins
    Signed-off-by: Sam Ravnborg

    Roman Zippel
     

12 Aug, 2007

1 commit

  • This version brings a number of new checks, and a number of bug
    fixes. Of note:

    - checks for spacing on round and square bracket combinations
    - loosening of the single statement brace checks, to allow
    them when they contain comments or where other blocks in a
    compound statement have them.
    - parks the multple declaration support
    - allows architecture defines in architecture specific headers

    Andy Whitcroft (21):
    Version: 0.09
    loosen single statement brace checks
    fix up multiple declaration to avoid function arguments
    add some function space parenthesis check exceptions
    handle EXPORT_'s with parentheses in their names
    clean up some warnings in multi-line macro bracketing support
    park the multiple declaration checks
    make block brace checks count comments as a statement
    __volatile__ and __extension__ are not functions
    allow architecture specific defined within architecture includes
    check spacing on square brackets
    check spacing on parentheses
    ensure we apply checks to the part before start comment
    check #ifdef conditional spacing
    handle __init_refok and __must_check
    add noinline to inline checks
    prevent email addresses from tripping spacing checks
    handle typed initialiser spacing
    handle line contination as end of line
    add bool to the type matcher
    refine EXPORT_SYMBOL checks to handle pointers

    Signed-off-by: Andy Whitcroft
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andy Whitcroft
     

01 Aug, 2007

1 commit

  • This is needed on MIPS where the same mechanism as get_user() is used to
    intercept bus error exceptions for some hardware probes. Without this
    patch modpost will throw spurious warnings:

    LD vmlinux
    SYSMAP System.map
    SYSMAP .tmp_System.map
    MODPOST vmlinux
    WARNING: arch/mips/sgi-ip22/built-in.o(__dbe_table+0x0): Section mismatch: reference to .init.text:

    Signed-off-by: Ralf Baechle
    Cc: Sam Ravnborg
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ralf Baechle
     

26 Jul, 2007

8 commits

  • 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: Chris Zankel
    Signed-off-by: Sam Ravnborg

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

    Sam Ravnborg
     
  • This is a preparational patch that just move
    two functions and add one (for now unused) function.

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • Sam Ravnborg pointed out that Documentation/kbuild/makefiles.txt already
    says this is what it's for. This patch makes the reality live up to the
    documentation. This fixes the problem of LDFLAGS_BUILD_ID getting into too
    many places.

    Signed-off-by: Roland McGrath
    Signed-off-by: Sam Ravnborg

    Roland McGrath
     
  • dep and dep2 in struct symbol was unused - remove them.

    Signed-off-by: Sam Ravnborg
    Cc: Roman Zippel

    Sam Ravnborg
     
  • Roman Zippel wrote:
    > A simple example would be
    > help texts, right now they are per symbol, but they should really be per
    > menu, so archs can provide different help texts for something.

    This patch does this and at the same time introduce a few API
    funtions used to access the help text.

    The relevant api functions are introduced in the various frontends.

    Signed-off-by: Sam Ravnborg
    Cc: Roman Zippel

    Sam Ravnborg
     
  • I noticed, when running scripts/ver_linux on both a Gentoo system
    and a Slackware system, that the line printing the C library
    version looked a little odd. So I fixed it up to be in line with
    all the rest.

    Old output:
    Linux C Library > libc.2.5
    New output:
    Linux C Library 2.5

    Signed-off-by: Jesper Juhl
    Signed-off-by: Sam Ravnborg

    Jesper Juhl
     
  • We already check and warn about section mismatches from vmlinux
    (build as vmlinux.o) during first pass so skip the checks
    during the 2nd pass where we process modules.

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     

24 Jul, 2007

1 commit

  • Modify modpost (file2alias.c) to add acpi*:XYZ0001: alias in modules.alias
    like:
    grep acpi /lib/modules/2.6.22-rc4-default/modules.alias
    alias acpi*:SNY5001:* sony_laptop
    alias acpi*:SNY6001:* sony_laptop
    for e.g. the sony_laptop module.
    This module matches against all ACPI devices with a HID or CID of SNY5001
    or SNY6001

    Export an uevent and modalias sysfs file containing the string:
    [MODALIAS=]acpi:PNP0C0C:
    additional CIDs are concatenated at the end.

    Signed-off-by: Thomas Renninger
    Signed-off-by: Kay Sievers
    Signed-off-by: Len Brown

    Thomas Renninger
     

20 Jul, 2007

7 commits

  • I recently ran Lindent over the AdvanSys driver and it moved the
    comments on #else and #endif lines way over to the right:

    #else /* ADVANSYS_DEBUG */

    This doesn't match what I expect from kernel style, but it is
    documented. We just need another flag to indent to make this look like:

    #else /* ADVANSYS_DEBUG */

    Signed-off-by: Matthew Wilcox
    Signed-off-by: Linus Torvalds

    Matthew Wilcox
     
  • Signed-off-by: Al Viro
    Signed-off-by: Linus Torvalds

    Al Viro
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild: (33 commits)
    xtensa: use DATA_DATA in xtensa
    powerpc: add missing DATA_DATA to powerpc
    cris: use DATA_DATA in cris
    kallsyms: remove usage of memmem and _GNU_SOURCE from scripts/kallsyms.c
    kbuild: use -fno-optimize-sibling-calls unconditionally
    kconfig: reset generated values only if Kconfig and .config agree.
    kbuild: fix the warning when running make tags
    kconfig: strip 'CONFIG_' automatically in kernel configuration search
    kbuild: use POSIX BRE in headers install target
    Whitelist references from __dbe_table to .init
    modpost white list pattern adjustment
    kbuild: do section mismatch check on full vmlinux
    kbuild: whitelist references from variables named _timer to .init.text
    kbuild: remove hardcoded _logo names from modpost
    kbuild: remove hardcoded apic_es7000 from modpost
    kbuild: warn about references from .init.text to .exit.text
    kbuild: consolidate section checks
    kbuild: refactor code in modpost to improve maintainability
    kbuild: ignore section mismatch warnings originating from .note section
    kbuild: .paravirtprobe section is obsolete, so modpost doesn't need to handle it
    ...

    Linus Torvalds
     
  • This version brings a number of new checks, and a number of bug
    fixes. Of note:

    - warnings for multiple assignments per line
    - warnings for multiple declarations per line
    - checks for single statement blocks with braces

    This patch includes an update for feature-removal-schedule.txt to
    better target checks.

    Andy Whitcroft (12):
    Version: 0.08
    only apply printk checks where there is a string literal
    allow suppression of errors for when no patch is found
    warn about multiple assignments
    warn on declaration of multiple variables
    check for kfree() with needless null check
    check for single statement braced blocks
    check for aggregate initialisation on the next line
    handle the => operator
    check for spaces between function name and open parenthesis
    move to explicit Check: entries in feature-removal-schedule.txt
    handle pointer attributes

    Signed-off-by: Andy Whitcroft
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andy Whitcroft
     
  • If a parameter description begins with a '.', this indicates a "request"
    for "man" mode output (*roff), so it needs special handling.

    Problem case is in include/asm-i386/atomic.h for function
    atomic_add_unless():
    * @u: ...unless v is equal to u.
    This parameter description is currently not printed in man mode output.

    [akpm@linux-foundation.org: cleanup]
    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • Strip C99-style comments from the input stream.
    /*...*/ comments are already stripped.
    C99 comments confuse the kernel-doc script.

    Also update some comments.

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • Fix kernel-doc warning:
    Warning(linux-2.6.22-rc2-git2/include/linux/skbuff.h:316): No description found for parameter '}'

    which is caused by nested anonymous structs/unions ending with:
    };
    };

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

18 Jul, 2007

1 commit

  • KSYM_NAME_LEN is peculiar in that it does not include the space for the
    trailing '\0', forcing all users to use KSYM_NAME_LEN + 1 when allocating
    buffer. This is nonsense and error-prone. Moreover, when the caller
    forgets that it's very likely to subtly bite back by corrupting the stack
    because the last position of the buffer is always cleared to zero.

    This patch increments KSYM_NAME_LEN by one and updates code accordingly.

    * off-by-one bug in asm-powerpc/kprobes.h::kprobe_lookup_name() macro
    is fixed.

    * Where MODULE_NAME_LEN and KSYM_NAME_LEN were used together,
    MODULE_NAME_LEN was treated as if it didn't include space for the
    trailing '\0'. Fix it.

    Signed-off-by: Tejun Heo
    Acked-by: Paulo Marques
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Tejun Heo
     

17 Jul, 2007

20 commits

  • The only in-kernel user of "memmem" is scripts/kallsyms.c and it only
    uses it to find tokens that are 2 bytes in size. It is trivial to
    replace it with a simple function that finds 2-byte tokens.

    This should help users from systems that don't have the memmem GNU
    extension available.

    Signed-off-by: Paulo Marques
    Signed-off-by: Sam Ravnborg

    Paulo Marques
     
  • Normally generated values (Kconfig entries without a prompt) are cleared as
    they are regenerated anyway and so they appear as new should they become
    visible and defaults work as expected (once a value is set defaults aren't
    used anymore).

    The detection whether a value is generated or not is only based on its
    visibility status, which can quickly change for a lot of symbols by just
    removing a single line from .config or adding a dependency to Kconfig as you
    noticed.

    The patch now suppresses this logic when .config and Kconfig aren't in sync
    and .config needs to be updated, so that you can remove now a random value
    from .config and oldconfig won't reask for many other values.

    Signed-off-by: Roman Zippel
    Signed-off-by: Andrew Morton
    Signed-off-by: Sam Ravnborg

    Roman Zippel
     
  • Modify the ncurses configuration tool ('make menuconfig') in a way that the
    user can enter the search string (/) both with or without the leading
    'CONFIG_'.

    This simplifies using copy & paste from .config files because you can
    select the whole word.

    Signed-off-by: Bernhard Walle
    Signed-off-by: Andrew Morton
    Signed-off-by: Sam Ravnborg

    Bernhard Walle
     
  • The sed expression used at the moment in scripts/Makefile.headersinst
    relies on the (handy) GNU extension where you can escape ERE's in an
    otherwise BRE without using the GNU -r option. The following patch
    replaces this "\+" usage with a functionally equivalent POSIX BRE compliant
    "\{1,\}". Tested with `make headers_install` against blackfin/x86_64/i386
    targets.

    Stupid whiny OS X users and their crappy sed ;)

    Signed-off-by: Mike Frysinger
    Signed-off-by: Andrew Morton
    Signed-off-by: Sam Ravnborg

    Mike Frysinger
     
  • This is needed on MIPS where the same mechanism as get_user() is used to
    intercept bus error exceptions for some hardware probes. Without this
    patch modpost will throw spurious warnings:

    LD vmlinux
    SYSMAP System.map
    SYSMAP .tmp_System.map
    MODPOST vmlinux
    WARNING: arch/mips/sgi-ip22/built-in.o(__dbe_table+0x0): Section mismatch: reference to .init.text:

    Signed-off-by: Ralf Baechle
    Signed-off-by: Sam Ravnborg

    Ralf Baechle
     
  • gcc puts data into .data.rel or .data.rel.* on some architectures (e.g.
    ia64) or under certain conditions, so whatever is legal relative to
    .data should also be legal for those other sections. Fixes a few
    modpost warnings on ia64.

    Signed-off-by: Jan Beulich
    Signed-off-by: Sam Ravnborg

    Jan Beulich
     
  • Previously we did do the check on the .o files used to link
    vmlinux but that failed to find questionable references across
    the .o files.
    Create a dedicated vmlinux.o file used only for section mismatch checks
    that uses the defualt linker script so section does not get renamed.

    The vmlinux.o may later be used as part of the the final link of vmlinux
    but for now it is used fo section mismatch only.
    For a defconfig build this is instant but for an allyesconfig this
    add two minutes to a full build (that anyways takes ~2 hours).

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • arm uses a lot of ops structures named *_timer that has legitimite
    references to .init.text.
    So let's add this variable to the list of variables that may reference
    .init.text without causing any warning.

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • Replaced this with a __init_refok marker
    in front of fb_find_logo().

    I think that the __initdata marker for the logo's are
    wrong but I have not justified this so I did not remove it.

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • Replace the hardcoded variable name apic_es7000 in modpost
    with a __initdata_refok marker.

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • The .exit.text section may be discarded either at build or at runtime.
    So let modpost warn if this situation is detected.

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • Move more checks from whitelist to the section check functions.
    Remove the redundent pci_fixup check.
    Renumber the patterns.
    No functional changes.

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • There were a great deal of overlap between the two functions
    that check which sections may reference .init.text and .exit.text.
    Factor out common check to a separate function and
    sort entries in the original functions.

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • .note* sections are ELF notes, which are typically used by external
    tools to examine the kernel image. Since this is removed from any
    runtime consideration, it's OK to reference any section from a .note*
    section.

    Signed-off-by: Jeremy Fitzhardinge
    Cc: "Eric W. Biederman"
    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • The .paravirtprobe section is obsolete, so modpost doesn't need to handle it.

    Signed-off-by: Jeremy Fitzhardinge
    Cc: Rusty Russell
    Signed-off-by: Sam Ravnborg

    Jeremy Fitzhardinge
     
  • We should do better here by effetively "dereferencing" references to
    the .toc (or the .got2) section, but that is much harder.

    Signed-off-by: Stephen Rothwell
    Signed-off-by: Sam Ravnborg

    Stephen Rothwell
     
  • With this change we can find more symbols hereby improving
    the readability of the warnings.

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • On i386 and MIPS, warn_sec_mismatch() sometimes fails to show
    usefull symbol name. This is because empty 'refsym' due to 0 r_addend
    value. This patch is to adjust r_addend value, consulting with
    apply_relocate() routine in kernel code.

    Signed-off-by: Atsushi Nemoto
    Signed-off-by: Sam Ravnborg

    Atsushi Nemoto
     
  • Massimo Maiurana reported that
    update-po-config was broken:
    1) spelling errors in Makefile so arch/um failed
    2) UTF-8 was not supported

    The following patch address the above problems.
    kxgettext now append the output to the .pot file
    generated by xgettext - so we have a header.
    In all places UFT-8 is specifed so we now flawlessly
    support UTF-8.
    The Kconfig files had an empty string in a few cases -
    these are now supressed in kxgettext.

    With this the translators can now pick up where they left
    and get it all translated.
    There are ~11000 strings to be translated...

    Signed-off-by: Sam Ravnborg
    Cc: Massimo Maiurana
    Cc: Arnaldo Carvalho de Melo

    Sam Ravnborg
     
  • Sometimes it is useful to squash all uid's/gid's to 0:0 regardless of
    current owner. For example, in build systems that get run as arbitrary
    users (uClinux-dist). This adds a special "squash" keyword so you can do
    '-g squash -u squash' and have ownership squashed to root.

    Signed-off-by: Mike Frysinger
    Cc: Sam Ravnborg
    Signed-off-by: Andrew Morton

    Mike Frysinger