29 Apr, 2008

4 commits

  • As choice dependency are now fully checked, it's quite easy to add support
    for named choices. This lifts the restriction that a choice value can only
    appear once, although it still has to be within the same group,
    but multiple choices can be joined by giving them a name.
    While at it I cleaned up a little the choice type logic to simplify it a
    bit.

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

    Roman Zippel
     
  • Properly check the dependency of choices as a group.
    Also fix that sym_check_deps() correctly terminates the dependency loop
    error check (otherwise it would continue printing the dependency chain).

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

    Roman Zippel
     
  • On a Mac OS X machine the output of ls -l is different from a standard
    Linux machine. Use readlink instead of parsing a hardcoded field number
    from the ls output.

    Signed-off-by: Felix Fietkau
    Signed-off-by: Sam Ravnborg

    Felix Fietkau
     
  • Fix reversal of dlg.border.atr and dlg.dialog.atr for draw_box()
    Makes the inputbox look like expected

    Signed-off-by: Roel Kluin
    Signed-off-by: Sam Ravnborg

    Roel Kluin
     

28 Apr, 2008

2 commits

  • Print a warning when a kernel-doc comment block ends with text on the same
    line as the ending comment characters, e.g.:

    * this text is lost. */

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

    Randy Dunlap
     
  • I saw this problem recently. With this kernel-doc:

    * Note: some important info
    *
    * Note: other important info

    kernel-doc uses the "section name" (preceding the ':', like "Note") as a hash
    key for storing the descriptive text ("blah important info"). It is (was)
    possible to have duplicate (colliding) section names, without any kind of
    warning or error.

    kernel-doc happily used the latter descriptive text for all instances of
    printing the descriptive text and the former important info
    was lost.

    One way to "fix" this is to modify the kernel-doc comments, e.g.:

    * Note1: foo bar
    *
    * Note.2: blah zay

    For now, kernel-doc will signal an error when it sees colliding section names
    like this.

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

    Randy Dunlap
     

27 Apr, 2008

2 commits


26 Apr, 2008

6 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (120 commits)
    usb: don't update devnum for wusb devices
    wusb: make ep0_reinit available for modules
    wusb: devices dont use a set address
    wusb: teach choose_address() about wireless devices
    wusb: add link wusb-usb device
    wusb: add authenticathed bit to usb_dev
    USB: remove unnecessary type casting of urb->context
    usb serial: more fixes and groundwork for tty changes
    USB: replace remaining __FUNCTION__ occurrences
    USB: usbfs: export the URB_NO_INTERRUPT flag to userspace
    USB: fix compile problems in ehci-hcd
    USB: ehci: qh_completions cleanup and bugfix
    USB: cdc-acm: signedness fix
    USB: add documentation about callbacks
    USB: don't explicitly reenable root-hub status interrupts
    USB: OHCI: turn off RD when remote wakeup is disabled
    USB: HCDs use the do_remote_wakeup flag
    USB: g_file_storage: ignore bulk-out data after invalid CBW
    USB: serial: remove endpoints setting checks from core and header
    USB: serial: remove unneeded number endpoints settings
    ...

    Linus Torvalds
     
  • Massimo Maiurana reported:
    In the latest kernel "make update-po-config" fails because it tries
    to open arch/Kconfig/Kconfig, since the ls command doesn't
    distinguish between files and directories.

    Cc: Massimo Maiurana
    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • This patch adds a new (Kbuild) Makefile variable KBUILD_EXTRA_SYMBOLS.
    The space separated list of file names assigned to KBUILD_EXTRA_SYMBOLS
    is used when calling scripts/mod/modpost during stage 2 of the Kbuild
    process for non-kernel-tree modules.

    Signed-off-by: Richard Hacker
    Signed-off-by: Sam Ravnborg

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

    Richard Hacker
     
  • Signed-off-by: Robert P. J. Day
    Signed-off-by: Sam Ravnborg

    Robert P. J. Day
     
  • 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
     

25 Apr, 2008

1 commit


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
     

29 Mar, 2008

1 commit

  • This version brings proper quote tracking across lines, and brings the
    handling of comments into the same mechanism ensuring nesting is correctly
    handled. It brings the usual flurry of fixes for false positives. It also
    brings a number of new checks. The most contentious change will likely be
    the checks for NR_CPUS as this throws some new warnings in kernel/sched.c.

    Of note:
    - all new quote tracking across lines
    - all new comment tracking
    - new more direct, less ambigious wording for some warnings
    - recommends mutexes and completions over semaphores
    - recommends strict_strto* over simple_strto*
    - report on direct use of NR_CPUS

    Andy Whitcroft (22):
    Version: 0.16
    string quote tracking should cross line boundaries
    check spacing round -> correctly across newlines
    checks for linux/ against asm/ include files should be warnings
    standardise on 'required' and 'prohibited'
    take the first end of condition when parsing statements
    values: cope with unbalanced brackets
    preprocessor #elif is not a function
    preprocessor #if should not trigger trailing statement checks
    test: allow us to limit output to a single error
    recommend real mutexes over semaphores
    asm checks should mirror those for __asm__
    warn on semaphores being used in place of completions
    trailing ; on control structure should ignore do {} while ();
    recommend strict_strtoX over simple_strtoX
    redo comment handling as a quote type
    use of NR_CPUS is normally wrong
    consistant spacing should only be about spaces
    if brace check suppression should only apply to the top-levels
    use tr/// to align spacing for operators
    move to using four parameter form of substr
    check and report modifications to include/asm

    Signed-off-by: Andy Whitcroft
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andy Whitcroft
     

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
     

14 Mar, 2008

1 commit

  • Honor the environment variable "KBUILD_VERBOSE=1" (as set by make V=1) to
    enable verbose mode in scripts/kernel-doc. Useful for getting more info and
    warnings from kernel-doc.

    Signed-off-by: Randy Dunlap
    Cc: Sam Ravnborg
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

05 Mar, 2008

1 commit

  • This version brings a number of minor fixes updating the type detector and
    the unary tracker. It also brings a few small fixes for false positives.
    It also reverts the --file warning. Of note:

    - limit CVS checks to added lines
    - improved type detections
    - fixes to the unary tracker

    Andy Whitcroft (13):
    Version: 0.15
    EXPORT_SYMBOL checks need to accept array variables
    export checks must match DECLARE_foo and LIST_HEAD
    possible types: cleanup debugging missing line
    values: track values through preprocessor conditional paths
    typeof is actually a type
    possible types: detect definitions which cross lines
    values: include line numbers on value debug information
    values: ensure we find correctly record pending brackets
    values: simplify the brace history stack
    CVS keyword checks should only apply to added lines
    loosen spacing for comments
    allow braces for single statement blocks with multiline conditionals

    Harvey Harrison (1):
    checkpatch: remove fastcall

    Ingo Molnar (1):
    checkpatch.pl: revert wrong --file message

    Uwe Kleine-Koenig (1):
    fix typo "goot" -> "good"

    Signed-off-by: Andy Whitcroft
    Cc: Randy Dunlap
    Cc: Joel Schopp
    Cc: Ingo Molnar
    Cc: Andi Kleen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andy Whitcroft
     

24 Feb, 2008

1 commit

  • When running "make htmldocs" I'm seeing some non-fatal perl errors caused
    by trying to parse the callback function definitions in blk-core.c.

    The errors are "Use of uninitialized value in concatenation (.)..."
    in combination with:
    Warning(linux-2.6.25-rc2/block/blk-core.c:1877): No description found for parameter ''

    The function pointers are defined without a * i.e.
    int (drv_callback)(struct request *)

    The compiler is happy with them, but kernel-doc isn't.

    This patch teaches create_parameterlist in kernel-doc to parse this type of
    function pointer definition, but is it the right way to fix the problem ?
    The problem only seems to occur in blk-core.c.

    However with the patch applied, kernel-doc finds the correct parameter
    description for the callback in blk_end_request_callback, which is doesn't
    normally.

    I thought it would be a bit odd to change to code to use the more normal
    form of function pointers just to get the documentation to work, so I fixed
    kernel-doc instead - even though this is teaching it to understand code
    that might go away (The comment for blk_end_request_callback says that it
    should not be used and will removed at some point).

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

    Richard Kennedy
     

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
     

19 Feb, 2008

1 commit


15 Feb, 2008

1 commit

  • fastcall is gone from the tree, no need to adjust the function prototypes
    anymore for this.

    Signed-off-by: Harvey Harrison
    Acked-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Harvey Harrison
     

14 Feb, 2008

2 commits

  • 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
     
  • > The attached .config (with current -git) results in a compile
    > error since it contains:
    >
    > CONFIG_X86=y
    > # CONFIG_EMBEDDED is not set
    > CONFIG_SERIO=m
    > CONFIG_SERIO_I8042=y
    >
    > Looking at drivers/input/serio/Kconfig I simply don't get how this
    > can happen.

    You've hit the rather subtle rules of select vs default. What happened is
    that SERIO is selected to m, but SERIO_I8042 isn't selected so the default
    of y is used instead.
    We already had the problem in the past that select and default don't work
    well together, so this patch cleans this up and makes the rule hopefully
    more straightforward. Basically now the value is calculated like this:

    (value && dependency) || select

    where the value is the user choice (if available and the symbol is
    visible) or default.

    In this case it means SERIO and SERIO_I8042 are both set to y due to their
    default and if SERIO didn't had the default, then the SERIO_I8042 value
    would be limited to m due to the dependency.

    I tested this patch with more 10000 random configs and above case is the
    only the difference that showed up, so I hope there is nothing that
    depended on the old more complex and subtle rules.

    Signed-off-by: Roman Zippel
    Tested-by: Adrian Bunk
    Signed-off-by: Sam Ravnborg

    Roman Zippel
     

12 Feb, 2008

1 commit

  • When make -s support were added to filechk to
    combination created with make V=1 were not
    covered.
    Fix it by explicitly cover this case too.

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

    Sam Ravnborg
     

09 Feb, 2008

7 commits

  • If CONIFIG_LOCALVERSION is set for example to -loop, the following error
    message was generated.

    dpkg-deb - error: Debian revision (`loop') doesn't contain any digits
    dpkg-deb: 1 errors in control file

    The patch solves this by adding a numeric revision to package version.

    Signed-off-by: Michal Sojka
    Signed-off-by: Sam Ravnborg

    Michal Sojka
     
  • Signed-off-by: Mike Frysinger
    Signed-off-by: Sam Ravnborg

    Mike Frysinger
     
  • modpost: Use warn() for announcing section mismatches, for easy grepping for
    warnings in build logs.

    Also change an existing call from fprintf() to warn() while we're at it.

    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Sam Ravnborg

    Geert Uytterhoeven
     
  • Signed-off-by: Uwe Kleine-König
    Signed-off-by: Sam Ravnborg

    Uwe Kleine-König
     
  • If we cannot determine the symbol then print
    (unknown) to hint the reader that we failed to
    find the symbol.
    This happens with REL relocation records
    in arm object files.

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • This version brings the remainder of the queued fixes. A number of fixes
    for items missed reported by Andrew Morton and others. Also a handful
    of new checks and fixes for false positives. Of note:

    - new warning associated with --file to try and avoid cleanup only patches,
    - corrected handling of completly empty files,
    - corrected report handling with multiple files,
    - handling of possible types in the face of multiple declarations,
    - detection of unnessary braces on complex if statements (where present), and
    - all new comment spacing handling.

    Andi Kleen (1):
    Introduce a warning when --file mode is used

    Andy Whitcroft (14):
    Version: 0.14
    clean up some space violations in checkpatch.pl
    a completly empty file should not provoke a whinge
    reset report lines buffers between files
    unary ++/-- may abutt close braces
    __typeof__ is also unary
    comments: revamp comment handling
    add --summary-file option adding filename to summary line
    trailing backslashes are not trailing statements
    handle operators passed as parameters such as to ASSERTCMP
    possible types -- enhance debugging
    check for boolean operations with constants
    possible types: handle multiple declarations
    detect and report if statements where all branches are single statements

    Arjan van de Ven (1):
    quiet option should not print the summary on no errors

    Bartlomiej Zolnierkiewicz (1):
    warn about using __FUNCTION__

    Timur Tabi (1):
    loosen spacing checks for __asm__

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

    Andy Whitcroft
     
  • This version brings a large number of fixes which have built up over
    the Christmas period. Mostly these are fixes for false positives, both
    through improvments to unary checks and possible type detection. It
    also brings new checks for while location and CVS keywords. Of note:

    - a number of fixes to unary detection
    - detection of a number of new forms of types to improve type matching
    - better inline handling
    - recognision of '%' as an operator

    Andy Whitcroft (28):
    Version: 0.13
    unary detection: maintain bracket state across lines
    move to pre-sanitising the entire file
    the text of a #error statement should be treated like it is in quotes
    line sanitisation needs to target double backslash correctly
    tighten comment guestimation for lines starting ' * '
    debug: add a debug framework
    prevent unclosed single quotes from spreading
    add % as an operator
    the text of a #warning statement should be treated like it is in quotes
    possible matching applies in typedefs
    single statement block checks must not trigger when two or more statements
    possible types: local variables may also be const
    treat inline as a type attribute to even when out of place
    possible types: sparse annotations are valid indicators
    possible types: beef up the possible type testing
    check for hanging while statements on the wrong line
    utf8 checks need to occur against the raw lines
    function brace checks should use any whitespece matches
    comments should take up space in the line when sanitised
    remove debugging from if assignment checks
    possible types -- ensure we detect all pointer casts
    fix tests for function spacing in the presence of #define
    clean up the UTF-8 error message to be clearer
    test-lib: invert the status report, output success counts
    detect and report CVS keywords
    tests: break out tests
    Add $Id$ to the CVS keyword checks

    Benny Halevy (1):
    checkpatch.pl: recognize the #elif preprocessor directive

    Geert Uytterhoeven (1):
    print the filenames of patches where available

    Mauro Carvalho Chehab (1):
    Fix missing \n in checkpatch.pl

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

    Andy Whitcroft
     

08 Feb, 2008

3 commits

  • Make kernel-doc warn when a function/struct/union/typedef does not contain
    a properly formatted short description, such as:
    * scsi_devinfo: set up the dynamic device list
    or
    * scsi_devinfo -

    This warning is only generated when verbose (-v) mode is used.

    Also explain the -v command line option in the -h output.

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

    Randy Dunlap
     
  • Prevent duplicate output of a Description: section when there is a "blank"
    ("*") line between the initial function name/description line and the
    "Description:" header.

    Test case: drivers/scsi/scsi_devinfo.c::scsi_init_devinfo().

    Rob Landley hit this while he was producing SCSI kernel-doc.

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

    Randy Dunlap
     
  • Fix kernel-doc function prototype parsing which was exposed by vunmap() by
    allowing more than one '*' before the function name.

    Error(linux-2.6.24-mm1//mm/vmalloc.c:438): cannot understand prototype: 'struct page **vunmap(const void *addr) '

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

    Randy Dunlap
     

07 Feb, 2008

3 commits

  • I have been prime author and maintainer of block2mtd from day one, but
    neither MAINTAINERS nor the module source makes this fact clear. And while
    I'm at it, update my email addresses tree-wide, as the old address
    currently bounces and change my name to "joern" as unicode will likely
    continue to cause trouble until the end of this century.

    Signed-off-by: Joern Engel
    Cc: David Woodhouse
    Cc: Andy Whitcroft
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joern Engel
     
  • When resolving symbol names from addresses with aliased symbol names,
    kallsyms_lookup always returns the first symbol, even if it is a weak
    symbol.

    This patch changes this by sorting the symbols with the weak symbols last
    before feeding them to the kernel. This way the kernel runtime isn't
    changed at all, only the kallsyms build system is changed.

    Another side effect is that the symbols get sorted by address, too. So,
    even if future binutils version have some bug in "nm" that makes it fail to
    correctly sort symbols by address, the kernel won't be affected by this.

    Mathieu says:

    I created a module in LTTng that uses kallsyms to get the symbol
    corresponding to a specific system call address. Unfortunately, all the
    unimplemented syscalls were all referring to the (same) weak symbol
    identifying an unrelated system call rather that sys_ni (or whatever
    non-weak symbol would be expected). Kallsyms was dumbly returning the first
    symbol that matched.

    This patch makes sure kallsyms returns the non-weak symbol when there is
    one, which seems to be the expected result.

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Mathieu Desnoyers
    Looks-great-to: Rusty Russell
    Cc: Sam Ravnborg
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paulo Marques
     
  • When passing a zero address to kallsyms_lookup(), the kernel thought it was
    a valid kernel address, even if it is not. This is because is_ksym_addr()
    called is_kernel_extratext() and checked against labels that don't exist on
    many archs (which default as zero). Since PPC was the only kernel which
    defines _extra_text, (in 2005), and no longer needs it, this patch removes
    _extra_text support.

    For some history (provided by Jon):
    http://ozlabs.org/pipermail/linuxppc-dev/2005-September/019734.html
    http://ozlabs.org/pipermail/linuxppc-dev/2005-September/019736.html
    http://ozlabs.org/pipermail/linuxppc-dev/2005-September/019751.html

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Robin Getz
    Cc: David Woodhouse
    Cc: Jon Loeliger
    Cc: Paul Mackerras
    Cc: Benjamin Herrenschmidt
    Cc: Sam Ravnborg
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Robin Getz