28 Mar, 2009

1 commit


27 Mar, 2009

2 commits

  • …el/git/tip/linux-2.6-tip

    * 'header-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (50 commits)
    x86: headers cleanup - setup.h
    emu101k1.h: fix duplicate include of <linux/types.h>
    compiler-gcc4: conditionalize #error on __KERNEL__
    remove __KERNEL_STRICT_NAMES
    make netfilter use strict integer types
    make drm headers use strict integer types
    make MTD headers use strict integer types
    make most exported headers use strict integer types
    make exported headers use strict posix types
    unconditionally include asm/types.h from linux/types.h
    make linux/types.h as assembly safe
    Neither asm/types.h nor linux/types.h is required for arch/ia64/include/asm/fpu.h
    headers_check fix cleanup: linux/reiserfs_fs.h
    headers_check fix cleanup: linux/nubus.h
    headers_check fix cleanup: linux/coda_psdev.h
    headers_check fix: x86, setup.h
    headers_check fix: x86, prctl.h
    headers_check fix: linux/reinserfs_fs.h
    headers_check fix: linux/socket.h
    headers_check fix: linux/nubus.h
    ...

    Manually fix trivial conflicts in:
    include/linux/netfilter/xt_limit.h
    include/linux/netfilter/xt_statistic.h

    Linus Torvalds
     
  • Ingo Molnar
     

25 Mar, 2009

2 commits

  • This patch combines Greg Bank's dprintk() work with the existing dynamic
    printk patchset, we are now calling it 'dynamic debug'.

    The new feature of this patchset is a richer /debugfs control file interface,
    (an example output from my system is at the bottom), which allows fined grained
    control over the the debug output. The output can be controlled by function,
    file, module, format string, and line number.

    for example, enabled all debug messages in module 'nf_conntrack':

    echo -n 'module nf_conntrack +p' > /mnt/debugfs/dynamic_debug/control

    to disable them:

    echo -n 'module nf_conntrack -p' > /mnt/debugfs/dynamic_debug/control

    A further explanation can be found in the documentation patch.

    Signed-off-by: Greg Banks
    Signed-off-by: Jason Baron
    Signed-off-by: Greg Kroah-Hartman

    Jason Baron
     
  • 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
     

16 Mar, 2009

2 commits

  • 'make randconfig' uses glibc's rand function, and the seed of
    that PRNG is set via:

    srand(time(NULL));

    But 'time()' only increases once every second - freezing the
    randconfig result within a single second.

    My Nehalem testbox does randconfig much faster than 1 second
    and i have a few scripts that do 'randconfig until condition X'
    loops.

    Those scripts currently waste a lot of CPU time due to randconfig
    changing its seed only once per second currently.

    Change the seed to be micrseconds based. (I checked the statistical
    spread of the seed - the now.tv_sec*now.tv_usec multiplication
    there further improves it.)

    Signed-off-by: Ingo Molnar
    Cc: Roman Zippel
    [sam: fix for systems where usec is zero - noticed by Geert Uytterhoeven]
    Signed-off-by: Sam Ravnborg

    Ingo Molnar
     
  • Ingo Molnar reported that 'make randconfig' was not covering
    choice blocks properly, resulting in certain config options
    being left out of randconfig testing altogether.

    With the following patch we:
    - properly randomize choice value for normal choice blocks
    - properly randomize for multi choice blocks
    - added several comments to explain what is going on

    The root cause of the bug was that SYMBOL_VALID was set on the
    symbol representing the choice block so clearing this did
    the trick initially.
    But testign revealed a few more issues that is now fixed.

    Reported-by: Ingo Molnar
    Cc: Ingo Molnar
    Cc: Roman Zippel
    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     

07 Mar, 2009

3 commits

  • Running 'make rpm' fails when CONFIG_LOCALVERSION_AUTO=y and using a kernel source
    tree under SCM. This is due to KERNELRELEASE being different when the initial make
    is run and when make is run from rpmbuild.

    mkspec creates kernel.spec using KERNELRELEASE:

    echo "%files"
    echo '%defattr (-, root, root)'
    echo "%dir /lib/modules"
    echo "/lib/modules/$KERNELRELEASE"
    echo "/lib/firmware"
    echo "/boot/*"
    echo ""

    When CONFIG_LOCALVERSION_AUTO=y scripts/setlocalversion is called and grabs any
    additional version info from SCM. Next, the srctree is tarred up and SCM
    information is excluded.

    rpmbuild reruns make and in the process generates a new include/config/kernel.release
    and thus a new KERNELRELEASE. However this time the SCM information is gone so
    KERNELRELEASE no longer has the additional version information. When "make modules_install"
    runs, it uses the new KERNELRELEASE value to determine where to install the modules.
    This conflicts with where the spec file assumes they are going because of the
    mis-matching KERNELRELEASE versions.

    + INSTALL_MOD_PATH=/var/tmp/kernel-2.6.29rc4tip01479g5d85422-root
    + make -j16 modules_install
    INSTALL crypto/aead.ko
    INSTALL crypto/cbc.ko
    INSTALL crypto/chainiv.ko
    INSTALL crypto/crc32c.ko
    INSTALL crypto/crypto_algapi.ko
    INSTALL crypto/crypto_blkcipher.ko
    INSTALL crypto/crypto_hash.ko
    INSTALL crypto/cryptomgr.ko
    INSTALL crypto/ecb.ko
    INSTALL crypto/eseqiv.ko
    INSTALL crypto/krng.ko
    INSTALL crypto/md5.ko
    INSTALL crypto/pcbc.ko
    INSTALL crypto/rng.ko
    INSTALL drivers/block/cciss.ko
    INSTALL drivers/hid/hid-dummy.ko
    INSTALL drivers/scsi/iscsi_tcp.ko
    INSTALL drivers/scsi/libiscsi.ko
    INSTALL drivers/scsi/libiscsi_tcp.ko
    INSTALL drivers/scsi/scsi_transport_iscsi.ko
    INSTALL drivers/scsi/scsi_wait_scan.ko
    INSTALL fs/lockd/lockd.ko
    INSTALL fs/nfs/nfs.ko
    INSTALL fs/nfsd/nfsd.ko
    INSTALL lib/libcrc32c.ko
    INSTALL net/sunrpc/sunrpc.ko
    DEPMOD 2.6.29-rc4-tip
    + cp arch/x86/boot/bzImage
    /var/tmp/kernel-2.6.29rc4tip01479g5d85422-root/boot/vmlinuz-2.6.29-rc4-tip-01479-g5d85422
    + cp System.map
    /var/tmp/kernel-2.6.29rc4tip01479g5d85422-root/boot/System.map-2.6.29-rc4-tip-01479-g5d85422
    + cp .config
    /var/tmp/kernel-2.6.29rc4tip01479g5d85422-root/boot/config-2.6.29-rc4-tip-01479-g5d85422
    + cp vmlinux vmlinux.orig
    + bzip2 -9 vmlinux
    + mv vmlinux.bz2
    /var/tmp/kernel-2.6.29rc4tip01479g5d85422-root/boot/vmlinux-2.6.29-rc4-tip-01479-g5d85422.bz2
    + mv vmlinux.orig vmlinux
    + /usr/lib/rpm/brp-compress
    Processing files: kernel-2.6.29rc4tip01479g5d85422-2
    error: File not found:
    /var/tmp/kernel-2.6.29rc4tip01479g5d85422-root/lib/modules/2.6.29-rc4-tip-01479-g5d85422

    RPM build errors:
    File not found:
    /var/tmp/kernel-2.6.29rc4tip01479g5d85422-root/lib/modules/2.6.29-rc4-tip-01479-g5d85422
    make[1]: *** [rpm] Error 1
    make: *** [rpm] Error 2

    I have tested this patch on git -tip, Linus' git tree, and the kernel.org tar files, both
    with and without CONFIG_LOCALVERSION_AUTO=y.

    Signed-off-by: Josh Hunt
    Signed-off-by: Sam Ravnborg
    ----

    Josh Hunt
     
  • The contents of the %clean section in mkspec is currently commented
    out leaving RPM_BUILD_ROOT and its contents on the build machine.
    This patch removes it once the rpm build process is complete.

    Signed-off-by: Josh Hunt
    Signed-off-by: Sam Ravnborg

    Josh Hunt
     
  • This fixes an error when compiling the kernel.

    CHK include/linux/version.h
    HOSTCC scripts/unifdef
    scripts/unifdef.c:209: error: conflicting types for 'getline'
    /usr/include/stdio.h:651: note: previous declaration of 'getline' was here
    make[1]: *** [scripts/unifdef] Error 1
    make: *** [__headers] Error 2

    Signed-off-by: Justin P. Mattock
    Cc: Frederic Weisbecker
    Signed-off-by: Andrew Morton
    Signed-off-by: Sam Ravnborg

    Justin P. Mattock
     

04 Mar, 2009

1 commit


01 Mar, 2009

1 commit


28 Feb, 2009

8 commits


23 Feb, 2009

1 commit


21 Feb, 2009

1 commit


20 Feb, 2009

1 commit


18 Feb, 2009

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-fixes:
    kbuild: create the source symlink earlier in the objdir
    scripts: add x86 64 bit support to the markup_oops.pl script
    scripts: add x86 register parser to markup_oops.pl
    kbuild: add sys_* entries for syscalls in tags
    kbuild: fix tags generation of config symbols
    bootgraph: fix for use with dot symbols
    kbuild: add vmlinux to kernel rpm
    kbuild,setlocalversion: shorten the make time when using svn

    Linus Torvalds
     

17 Feb, 2009

1 commit


15 Feb, 2009

7 commits

  • Signed-off-by: Arjan van de Ven
    Signed-off-by: Andrew Morton
    Signed-off-by: Sam Ravnborg

    Arjan van de Ven
     
  • An oops dump also contains the register values.

    This patch parses these for (32 bit) x86, and then annotates the
    disassembly with these values; this helps in analysis of the oops by the
    developer, for example, NULL pointer or other pointer bugs show up clearly
    this way.

    Signed-off-by: Arjan van de Ven
    Signed-off-by: Andrew Morton
    Signed-off-by: Sam Ravnborg

    Arjan van de Ven
     
  • Currently, it is no longer possible to use the tags file to jump to
    system call function definitions with sys_foo, because the definitions
    are obscured by use of the SYSCALL_DEFINE* macros.

    This patch adds the appropriate option to ctags to make it see through
    the macro. Also, it adds the ENTRY() work already done for Exuberant
    to Emacs too.

    Signed-off-by: Rabin Vincent
    Signed-off-by: Sam Ravnborg

    Rabin Vincent
     
  • commit 4f628248a578585472e19e4cba2c604643af8c6c aka "kbuild: reintroduce
    ALLSOURCE_ARCHS support for tags/cscope" breaks tags generation for
    Kconfig symbols.

    Steps to reproduce:

    make tags
    vi -t PROC_FS

    It should jump to 'config PROC_FS' line.

    Signed-off-by: Alexey Dobriyan
    Tested-by: Pete Wyckoff
    Signed-off-by: Andrew Morton
    Signed-off-by: Sam Ravnborg

    Alexey Dobriyan
     
  • powerpc has dot symbols, so the dmesg output looks like:

    [ 0.327310] calling .migration_init+0x0/0x9c @ 1
    [ 0.327595] initcall .migration_init+0x0/0x9c returned 1 after 0 usecs

    The below fixes bootgraph.pl so it handles this correctly.

    Signed-off-by: Michael Neuling
    Signed-off-by: Arjan van de Ven
    Signed-off-by: Andrew Morton
    Signed-off-by: Sam Ravnborg

    Michael Neuling
     
  • We are building an automated system to test kernels weekly and need to
    provide an rpm to our QA dept. We would like to use the ability to create
    kernel rpms already in the kernel's Makefile, but need the vmlinux file
    included in the rpm for later debugging.

    This patch adds a compressed vmlinux to the kernel rpm when doing a
    make rpm-pkg or binrpm-pkg and upon install places the vmlinux file in /boot.

    Signed-off-by: Josh Hunt
    Signed-off-by: Sam Ravnborg

    Josh Hunt
     
  • Don't bother doing `svn st` as it takes a retarded amount of time when
    the source is cold

    Signed-off-by: Mike Frysinger
    Signed-off-by: Bryan Wu
    Signed-off-by: Sam Ravnborg

    Mike Frysinger
     

14 Feb, 2009

1 commit


13 Feb, 2009

1 commit


12 Feb, 2009

1 commit

  • Fix kernel-doc processing of SYSCALL wrappers.

    The SYSCALL wrapper patches played havoc with kernel-doc for
    syscalls. Syscalls that were scanned for DocBook processing
    reported warnings like this one, for sys_tgkill:

    Warning(kernel/signal.c:2285): No description found for parameter 'tgkill'
    Warning(kernel/signal.c:2285): No description found for parameter 'pid_t'
    Warning(kernel/signal.c:2285): No description found for parameter 'int'

    because the macro parameters all "look like" function parameters,
    although they are not:

    /**
    * sys_tgkill - send signal to one specific thread
    * @tgid: the thread group ID of the thread
    * @pid: the PID of the thread
    * @sig: signal to be sent
    *
    * This syscall also checks the @tgid and returns -ESRCH even if the PID
    * exists but it's not belonging to the target process anymore. This
    * method solves the problem of threads exiting and PIDs getting reused.
    */
    SYSCALL_DEFINE3(tgkill, pid_t, tgid, pid_t, pid, int, sig)
    {
    ...

    This patch special-cases the handling SYSCALL_DEFINE* function
    prototypes by expanding them to
    long sys_foobar(type1 arg1, type1 arg2, ...)

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

    Randy Dunlap
     

11 Feb, 2009

1 commit


10 Feb, 2009

2 commits

  • Impact: stack protector for x86_32

    Implement stack protector for x86_32. GDT entry 28 is used for it.
    It's set to point to stack_canary-20 and have the length of 24 bytes.
    CONFIG_CC_STACKPROTECTOR turns off CONFIG_X86_32_LAZY_GS and sets %gs
    to the stack canary segment on entry. As %gs is otherwise unused by
    the kernel, the canary can be anywhere. It's defined as a percpu
    variable.

    x86_32 exception handlers take register frame on stack directly as
    struct pt_regs. With -fstack-protector turned on, gcc copies the
    whole structure after the stack canary and (of course) doesn't copy
    back on return thus losing all changed. For now, -fno-stack-protector
    is added to all files which contain those functions. We definitely
    need something better.

    Signed-off-by: Tejun Heo
    Signed-off-by: Ingo Molnar

    Tejun Heo
     
  • Impact: no default -fno-stack-protector if stackp is enabled, cleanup

    Stackprotector make rules had the following problems.

    * cc support test and warning are scattered across makefile and
    kernel/panic.c.

    * -fno-stack-protector was always added regardless of configuration.

    Update such that cc support test and warning are contained in makefile
    and -fno-stack-protector is added iff stackp is turned off. While at
    it, prepare for 32bit support.

    Signed-off-by: Tejun Heo
    Signed-off-by: Ingo Molnar

    Tejun Heo
     

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
     

31 Jan, 2009

1 commit

  • The check for references to CONFIG_ symbols in exported headers turned
    out to be too agressive with the current state of affairs.
    After the work of Jaswinder to clean up all relevant cases we are down
    to almost pure noise.

    So lets drop the check for now - we can always add it back later
    should our headers be ready for that.

    Signed-off-by: Sam Ravnborg
    Signed-off-by: Ingo Molnar

    Sam Ravnborg