27 Sep, 2006

1 commit

  • Add modalias attribute support for the almost forgotten now EISA bus and
    (at least some) EISA-aware modules.

    The modalias entry looks like (for an 3c509 NIC):

    eisa:sTCM5093

    and the in-module alias like:

    eisa:sTCM5093*

    The patch moves struct eisa_device_id declaration from include/linux/eisa.h
    to include/linux/mod_devicetable.h (so that the former now #includes the
    latter), adds proper MODULE_DEVICE_TABLE(eisa, ...) statements for all
    drivers with EISA IDs I found (some drivers already have that DEVICE_TABLE
    declared), and adds recognision of __mod_eisa_device_table to
    scripts/mod/file2alias.c so that proper modules.alias will be generated.

    There's no support for /lib/modules/$kver/modules.eisamap, as it's not used
    by any existing tools, and because with in-kernel modalias mechanism those
    maps are obsolete anyway.

    The rationale for this patch is:

    a) to make EISA bus to act as other busses with modalias
    support, to unify driver loading

    b) to foget about EISA finally - with this patch, kernel
    (who still supports EISA) will be the only one who knows
    how to choose the necessary drivers for this bus ;)

    [akpm@osdl.org: fix the kbuild bit]
    Signed-off-by: Michael Tokarev
    Cc: Rusty Russell
    Cc: Randy Dunlap
    Acked-the-net-bits-by: Jeff Garzik
    Acked-the-tulip-bit-by: Valerie Henson
    Cc: James Bottomley
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michael Tokarev
     

26 Sep, 2006

3 commits

  • Current gcc generates calls not jumps to noreturn functions. When that happens the
    return address can point to the next function, which confuses the unwinder.

    This patch works around it by marking asynchronous exception
    frames in contrast normal call frames in the unwind information. Then teach
    the unwinder to decode this.

    For normal call frames the unwinder now subtracts one from the address which avoids
    this problem. The standard libgcc unwinder uses the same trick.

    It doesn't include adjustment of the printed address (i.e. for the original
    example, it'd still be kernel_math_error+0 that gets displayed, but the
    unwinder wouldn't get confused anymore.

    This only works with binutils 2.6.17+ and some versions of H.J.Lu's 2.6.16
    unfortunately because earlier binutils don't support .cfi_signal_frame

    [AK: added automatic detection of the new binutils and wrote description]

    Signed-off-by: Jan Beulich
    Signed-off-by: Andi Kleen

    Jan Beulich
     
  • Add a feature check that checks that the gcc compiler has stack-protector
    support and has the bugfix for PR28281 to make this work in kernel mode.
    The easiest solution I could find was to have a shell script in scripts/
    to do the detection; if needed we can make this fancier in the future
    without making the makefile too complex.

    Signed-off-by: Arjan van de Ven
    Signed-off-by: Andi Kleen
    CC: Andi Kleen
    CC: Sam Ravnborg

    Arjan van de Ven
     
  • ... instead of using a CONFIG option. The config option still controls
    if the resulting executable actually has unwind information.

    This is useful to prevent compilation errors when users select
    CONFIG_STACK_UNWIND on old binutils and also allows to use
    CFI in the future for non kernel debugging applications.

    Cc: jbeulich@novell.com
    Cc: sam@ravnborg.org

    Signed-off-by: Andi Kleen

    Andi Kleen
     

25 Sep, 2006

16 commits

  • * git://git.infradead.org/~dwmw2/khdrs-2.6:
    New 'make headers_install_all' target.
    Use dependencies for 'make headers_install'.
    [S390] Unexport , export in its place.
    Remove dead netfilter_logging.h from include/linux/Kbuild
    Remove offsetof() from user-visible
    Clean up exported headers on CRIS
    Fix v850 exported headers
    Don't advertise (or allow) headers_{install,check} where inappropriate.
    Remove UML header export
    Remove ARM26 header export.
    Fix H8300 exported headers.
    Fix m68knommu exported headers
    Fix exported headers for SPARC, SPARC64
    Fix 'make headers_check' on m32r
    Fix 'make headers_check' on sh64
    Fix 'make headers_check' on sh
    [HEADERS] Fix ARM 'make headers_check'

    Initial pass of manual conflict resolution in top-level Makefile over
    conflicting build rule and headers_install changes.

    Linus Torvalds
     
  • "mkdir -p" does not only mean not to complain if the directory already
    exists, but also to create the parent directories if needed. This patch
    removes "lib" from the list of directories to create as we will also create
    "lib/modules".

    Signed-off-by: Rolf Eike Beer
    Signed-off-by: Sam Ravnborg

    Rolf Eike Beer
     
  • Signed-off-by: Sam Ravnborg

    Robert P. J. Day
     
  • At stage 2 modpost utility is used to check modules. In case of unresolved
    symbols modpost only prints warning.

    IMHO it is a good idea to fail compilation process in case of unresolved
    symbols (at least in modules coming with kernel), since usually such errors
    are left unnoticed, but kernel modules are broken.

    - new option '-w' is added to modpost:
    if option is specified, modpost only warns about unresolved symbols

    - modpost is called with '-w' for external modules in Makefile.modpost

    Signed-off-by: Andrey Mirkin
    Signed-off-by: Kirill Korotaev
    Signed-off-by: Andrew Morton
    Signed-off-by: Sam Ravnborg

    Kirill Korotaev
     
  • Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • hostprogs-y only supported creating output directory for the final
    program. Extend this to also cover the situation where a .o
    file (used when host program is made from compositie objects) is
    locate in another directory.
    First user of this is the built-in lxdialog that.

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • Noticed by: Magnus Damm

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • tell why a a target got build
    enabled by make V=2
    Output (listed in the order they are checked):
    (1) - due to target is PHONY
    (2) - due to target missing
    (3) - due to: file1.h file2.h
    (4) - due to command line change
    (5) - due to missing .cmd file
    (6) - due to target not in $(targets)
    (1) We always build PHONY targets
    (2) No target, so we better build it
    (3) Prerequisite is newer than target
    (4) The command line stored in the file named dir/.target.cmd
    differed from actual command line. This happens when compiler
    options changes
    (5) No dir/.target.cmd file (used to store command line)
    (6) No dir/.target.cmd file and target not listed in $(targets)
    This is a good hint that there is a bug in the kbuild file

    This patch is inspired by a patch from: Milton Miller

    Cc: Milton Miller
    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • Based on patch from: Magnus Damm
    This has the advantage that all section mismatch checks are run regardless
    of modules being enabled or not.

    When running modpost on vmlinux output:
    MODPOST vmlinux

    When running modpost on modules output count of modules like this:
    MODPOST 5 modules

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • The modpost code is extended to ignore references
    from ".pci_fixup" to ".init.text".

    Signed-off-by: Magnus Damm

    Magnus Damm
     
  • Let headers_install use in-kernel unifdef

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • This patch contains a raw copy of unifdef.c
    Next patch will modify it and add infrastructure to use it
    Adding unifdef to the kernel is acked by the author.

    The reason to add unifdef as part of the kernel source is that it is not
    yet a common utility on most distributions.

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • Consistently decide when to rebuild a target across all of
    if_changed, if_changed_dep, if_changed_rule.
    PHONY targets are now treated alike (ignored) for all targets

    While add it make Kbuild.include almost readable by factoring out a few
    bits to some common variables and reuse this in Makefile.build.

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • Kconfig doesn't currently handle config files with DOS line endings.
    While these are, of course, an abomination, etc, etc, it can be handy
    to not have to convert them first. It's also a tiny patch and even adds
    support for lines ending in just \r or even \n\r.

    Signed-off-by: Matthew Wilcox
    Signed-off-by: Sam Ravnborg

    Matthew Wilcox
     
  • Re-export header files only if either they or their controlling Kbuild
    file has actually changed. Also allow for similar dependencies with
    'headers_check', once we properly create the dependencies for those.

    Signed-off-by: David Woodhouse

    David Woodhouse
     

23 Sep, 2006

2 commits

  • * 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6: (44 commits)
    [S390] hypfs crashes with invalid mount option.
    [S390] cio: subchannel evaluation function operates without lock
    [S390] cio: always query all paths on path verification.
    [S390] cio: update path groups on logical CHPID changes.
    [S390] cio: subchannels in no-path state.
    [S390] Replace nopav-message on VM.
    [S390] set modalias for ccw bus uevents.
    [S390] Get rid of DBG macro.
    [S390] Use alternative user-copy operations for new hardware.
    [S390] Make user-copy operations run-time configurable.
    [S390] Cleanup in signal handling code.
    [S390] Cleanup in page table related code.
    [S390] Linux API for writing z/VM APPLDATA Monitor records.
    [S390] xpram off by one error.
    [S390] Remove kexec experimental flag.
    [S390] cleanup appldata.
    [S390] fix typo in vmcp.
    [S390] Kernel stack overflow handling.
    [S390] qdio slsb processing state.
    [S390] Missing initialization in common i/o layer.
    ...

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: (114 commits)
    [POWERPC] Fix ohare IDE irq workaround on old powermacs
    [POWERPC] EEH: Power4 systems sometimes need multiple resets.
    [POWERPC] Include in arch/powerpc/sysdev/fsl_soc.h for phys_addr_t.
    [POWERPC] Demacrofy arch/powerpc/platforms/maple/pci.c
    [POWERPC] Maple U3 HT - reject inappropriate config space access
    [POWERPC] Fix IPIC pending register assignments
    [POWERPC] powerpc: fix building gdb against asm/ptrace.h
    [POWERPC] Remove DISCONTIGMEM cruft from page.h
    [POWERPC] Merge iSeries i/o operations with the rest
    [POWERPC] 40x: Fix debug status register defines
    [POWERPC] Fix compile error in sbc8560
    [POWERPC] EEH: support MMIO enable recovery step
    [POWERPC] EEH: enable MMIO/DMA on frozen slot
    [POWERPC] EEH: code comment cleanup
    [POWERPC] EEH: balance pcidev_get/put calls
    [POWERPC] PPC: Fix xmon stack frame address in backtrace
    [POWERPC] Add AT_PLATFORM value for Xilinx Virtex-4 FX
    [POWERPC] Start arch/powerpc/boot code reorganization
    [POWERPC] Define of_read_ulong helper
    [POWERPC] iseries: eliminate a couple of warnings
    ...

    Linus Torvalds
     

20 Sep, 2006

1 commit

  • Add a bus for the adjunct processor interface. Up to 64 devices can
    be connect to the ap bus interface, each device with 16 domains. That
    makes 1024 message queues. The interface is asynchronous, the answer
    to a message sent to a queue needs to be received at some later point
    in time. Unfortunately the interface does not provide interrupts when
    a message reply is pending. So the ap bus needs to implement some
    fancy polling, each active queue is polled once per 1/HZ second or
    continuously if an idle cpus exsists and the poll thread is activ
    (see poll_thread parameter).

    The ap bus uses the sysfs path /sys/bus/ap and has two bus attributes,
    ap_domain and config_time. The ap_domain selects one of the 16 domains
    to be used for this system. This limits the maximum number of ap devices
    to 64. The config_time attribute contains the number of seconds between
    two ap bus scans to find new devices.

    The ap bus uses the modalias entries of the form "ap:tN" to autoload
    the ap driver for hardware type N. Currently known types are:
    3 - PCICC, 4 - PCICA, 5 - PCIXCC, 6 - CEX2A and 7 - CEX2C.

    Signed-off-by: Cornelia Huck
    Signed-off-by: Ralph Wuerthner
    Signed-off-by: Martin Schwidefsky

    Martin Schwidefsky
     

17 Sep, 2006

2 commits

  • We generate an which includes either or
    as appropriate. But we were doing this dependent on
    whether the file in question existed in the _unexported_ tree, not the
    exported tree. So if a file was exported to userspace in one asm- directory
    but not the other, the generated file in asm/ was incorrect.

    This only changed the failure mode if it _was_ included from a nice #error to
    a less explicable #include failure -- but it also gave false errors in 'make
    headers_check' output. Fix it by looking in the right place instead.

    Signed-off-by: David Woodhouse
    Cc: Sam Ravnborg
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Woodhouse
     
  • Signed-off-by: Ross Biro
    Acked-by: Sam Ravnborg
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ross Biro
     

14 Sep, 2006

1 commit


13 Sep, 2006

2 commits


31 Aug, 2006

1 commit


25 Aug, 2006

1 commit


16 Aug, 2006

1 commit

  • There is a small but annoying bug in scripts/mod/file2alias.c which causes
    it to generate invalid aliases for input devices on 64 bit archs. This causes
    joydev.ko to not be automaticly loaded when inserting a joystick, resulting in
    a non working joystick (for the average user).

    In scripts/mod/file2alias.c is the following code for generating the input
    aliases:
    static void do_input(char *alias,
    kernel_ulong_t *arr, unsigned int min, unsigned int max)
    {
    unsigned int i;

    for (i = min; i < max; i++)
    if (arr[i / BITS_PER_LONG] & (1 << (i%BITS_PER_LONG)))
    sprintf(alias + strlen(alias), "%X,*", i);
    }

    On 32 bits systems, this correctly generates "0,*" for the first alias, "8,*"
    for the second etc.

    However on 64 bits it generates: "0,*20,*" resp "8,*28,*" Notice how it adds 20
    + first entry (hex) ! to the list of hex codes, which is 32 more then the first
    entry, thus is because the bit test above wraps at 32 bits instead of 64.

    scripts/mod/file2alias.c, line 379 reads:
    if (arr[i / BITS_PER_LONG] & (1 << (i%BITS_PER_LONG)))
    That should be:
    if (arr[i / BITS_PER_LONG] & (1L << (i%BITS_PER_LONG)))

    Notice the added 'L' after the 1, otherwise that is an 32 bit int instead of a
    64 bit long, and when that int gets shifted >= 32 times, appearantly the number
    by which to shift is wrapped at 5 bits ( % 32) causing it to test a bit 32 bits
    too low.

    The patch below makes the nescesarry 1 char change :)

    Signed-off-by: Hans de Goede
    Acked-by: Rusty Russell
    Signed-off-by: Greg Kroah-Hartman

    Hans de Goede
     

01 Aug, 2006

6 commits

  • The possibility to specify an optional parameter did not work out as
    expected and it was not used - so remove the possibility.

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • oldconfig currently ignores unset choice options and doesn't ask for them.
    Correct the SYMBOL_DEF_USER flag of the choice symbol to be only set if
    it's set for all values.

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

    Roman Zippel
     
  • Reported by a Fedora user when they tried to build some out of tree module..

    Signed-off-by: Dave Jones
    Signed-off-by: Sam Ravnborg

    Dave Jones
     
  • The original errormessage was just plain unreadable.

    Sample error message after this update (not for real - I provoked it):

    FATAL: drivers/net/s2io: sizeof(struct pci_device_id)=33 is not a modulo of the
    size of section __mod_pci_device_table=160.
    Fix definition of struct pci_device_id in mod_devicetable.h

    Before a warning was generated - this is now a fatal error.

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • The latest toolchains can produce a new ELF section in DSOs and
    dynamically-linked executables. The new section ".gnu.hash" replaces
    ".hash", and allows for more efficient runtime symbol lookups by the
    dynamic linker. The new ld option --hash-style={sysv|gnu|both} controls
    whether to produce the old ".hash", the new ".gnu.hash", or both. In some
    new systems such as Fedora Core 6, gcc by default passes --hash-style=gnu
    to the linker, so that a standard invocation of "gcc -shared" results in
    producing a DSO with only ".gnu.hash". The new ".gnu.hash" sections need
    to be dealt with the same way as ".hash" sections in all respects; only the
    dynamic linker cares about their contents. To work with older dynamic
    linkers (i.e. preexisting releases of glibc), a binary must have the old
    ".hash" section. The --hash-style=both option produces binaries that a new
    dynamic linker can use more efficiently, but an old dynamic linker can
    still handle.

    The new section runs afoul of the custom linker scripts used to build vDSO
    images for the kernel. On ia64, the failure mode for this is a boot-time
    panic because the vDSO's PT_IA_64_UNWIND segment winds up ill-formed.

    This patch addresses the problem in two ways.

    First, it mentions ".gnu.hash" in all the linker scripts alongside ".hash".
    This produces correct vDSO images with --hash-style=sysv (or old tools),
    with --hash-style=gnu, or with --hash-style=both.

    Second, it passes the --hash-style=sysv option when building the vDSO
    images, so that ".gnu.hash" is not actually produced. This is the most
    conservative choice for compatibility with any old userland. There is some
    concern that some ancient glibc builds (though not any known old production
    system) might choke on --hash-style=both binaries. The optimizations
    provided by the new style of hash section do not really matter for a DSO
    with a tiny number of symbols, as the vDSO has. If someone wants to use
    =gnu or =both for their vDSO builds and worry less about that
    compatibility, just change the option and the linker script changes will
    make any choice work fine.

    Signed-off-by: Roland McGrath
    Cc: "Luck, Tony"
    Cc: Kyle McMartin
    Cc: Paul Mackerras
    Cc: Benjamin Herrenschmidt
    Cc: Jeff Dike
    Cc: Andi Kleen
    Cc: Sam Ravnborg
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Roland McGrath
     
  • Ignore __devinit in function definitions so that kernel-doc won't fail on
    them.

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

    Randy Dunlap
     

05 Jul, 2006

1 commit

  • * git://git.infradead.org/hdrinstall-2.6:
    Remove export of include/linux/isdn/tpam.h
    Remove and from userspace export
    Restrict headers exported to userspace for SPARC and SPARC64
    Add empty Kbuild files for 'make headers_install' in remaining arches.
    Add Kbuild file for Alpha 'make headers_install'
    Add Kbuild file for SPARC 'make headers_install'
    Add Kbuild file for IA64 'make headers_install'
    Add Kbuild file for S390 'make headers_install'
    Add Kbuild file for i386 'make headers_install'
    Add Kbuild file for x86_64 'make headers_install'
    Add Kbuild file for PowerPC 'make headers_install'
    Add generic Kbuild files for 'make headers_install'
    Basic implementation of 'make headers_check'
    Basic implementation of 'make headers_install'

    Linus Torvalds
     

04 Jul, 2006

1 commit

  • include/linux/version.h contained both actual KERNEL version
    and UTS_RELEASE that contains a subset from git SHA1 for when
    kernel was compiled as part of a git repository.
    This had the unfortunate side-effect that all files including version.h
    would be recompiled when some git changes was made due to changes SHA1.
    Split it out so we keep independent parts in separate files.

    Also update checkversion.pl script to no longer check for UTS_RELEASE.

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     

02 Jul, 2006

1 commit