04 Jul, 2006

3 commits

  • Generic lock debugging:

    - generalized lock debugging framework. For example, a bug in one lock
    subsystem turns off debugging in all lock subsystems.

    - got rid of the caller address passing (__IP__/__IP_DECL__/etc.) from
    the mutex/rtmutex debugging code: it caused way too much prototype
    hackery, and lockdep will give the same information anyway.

    - ability to do silent tests

    - check lock freeing in vfree too.

    - more finegrained debugging options, to allow distributions to
    turn off more expensive debugging features.

    There's no separate 'held mutexes' list anymore - but there's a 'held locks'
    stack within lockdep, which unifies deadlock detection across all lock
    classes. (this is independent of the lockdep validation stuff - lockdep first
    checks whether we are holding a lock already)

    Here are the current debugging options:

    CONFIG_DEBUG_MUTEXES=y
    CONFIG_DEBUG_LOCK_ALLOC=y

    which do:

    config DEBUG_MUTEXES
    bool "Mutex debugging, basic checks"

    config DEBUG_LOCK_ALLOC
    bool "Detect incorrect freeing of live mutexes"

    Signed-off-by: Ingo Molnar
    Signed-off-by: Arjan van de Ven
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     
  • s390's console_init must enable interrupts, but early_boot_irqs_on() gets
    called later. To avoid problems move console_init() after local_irq_enable().

    Signed-off-by: Heiko Carstens
    Acked-by: Ingo Molnar
    Cc: Martin Schwidefsky
    Cc: Arjan van de Ven
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Heiko Carstens
     
  • We're not reay to take a timer interrupt until timekeeping_init() has run.
    But time_init() will start the time interrupt and if it is called with
    local interrupts enabled we'll immediately take an interrupt and die.

    Fix that by running timekeeping_init() prior to time_init().

    We don't know _why_ local interrupts got enabled on Jesse Brandeburg's
    machine. That's a separate as-yet-unsolved problem. THe patch adds a little
    bit of debugging to detect that.

    This whole requirement that local interrupts be held off during early boot
    keeps on biting us.

    Signed-off-by: John Stultz
    Cc: Jesse Brandeburg
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    john stultz
     

01 Jul, 2006

5 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial:
    Remove obsolete #include
    remove obsolete swsusp_encrypt
    arch/arm26/Kconfig typos
    Documentation/IPMI typos
    Kconfig: Typos in net/sched/Kconfig
    v9fs: do not include linux/version.h
    Documentation/DocBook/mtdnand.tmpl: typo fixes
    typo fixes: specfic -> specific
    typo fixes in Documentation/networking/pktgen.txt
    typo fixes: occuring -> occurring
    typo fixes: infomation -> information
    typo fixes: disadvantadge -> disadvantage
    typo fixes: aquire -> acquire
    typo fixes: mecanism -> mechanism
    typo fixes: bandwith -> bandwidth
    fix a typo in the RTC_CLASS help text
    smb is no longer maintained

    Manually merged trivial conflict in arch/um/kernel/vmlinux.lds.S

    Linus Torvalds
     
  • Fix the INIT_ENV_ARG_LIMIT dependencies to what seems to have been
    intended.

    Spotted by Jean-Luc Leger.

    Signed-off-by: Adrian Bunk
    Acked-by: Paolo 'Blaisorblade' Giarrusso
    Cc: Jeff Dike
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     
  • Presently, smp_processor_id() isn't necessarily set up until setup_arch().
    But it's used in boot_cpu_init() and printk() and perhaps in other places,
    prior to setup_arch() being called.

    So provide a new smp_setup_processor_id() which is called before anything
    else, wire it up for Voyager (which boots on a CPU other than #0, and broke).

    Cc: James Bottomley
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • The remaining counters in page_state after the zoned VM counter patches
    have been applied are all just for show in /proc/vmstat. They have no
    essential function for the VM.

    We use a simple increment of per cpu variables. In order to avoid the most
    severe races we disable preempt. Preempt does not prevent the race between
    an increment and an interrupt handler incrementing the same statistics
    counter. However, that race is exceedingly rare, we may only loose one
    increment or so and there is no requirement (at least not in kernel) that
    the vm event counters have to be accurate.

    In the non preempt case this results in a simple increment for each
    counter. For many architectures this will be reduced by the compiler to a
    single instruction. This single instruction is atomic for i386 and x86_64.
    And therefore even the rare race condition in an interrupt is avoided for
    both architectures in most cases.

    The patchset also adds an off switch for embedded systems that allows a
    building of linux kernels without these counters.

    The implementation of these counters is through inline code that hopefully
    results in only a single instruction increment instruction being emitted
    (i386, x86_64) or in the increment being hidden though instruction
    concurrency (EPIC architectures such as ia64 can get that done).

    Benefits:
    - VM event counter operations usually reduce to a single inline instruction
    on i386 and x86_64.
    - No interrupt disable, only preempt disable for the preempt case.
    Preempt disable can also be avoided by moving the counter into a spinlock.
    - Handling is similar to zoned VM counters.
    - Simple and easily extendable.
    - Can be omitted to reduce memory use for embedded use.

    References:

    RFC http://marc.theaimsgroup.com/?l=linux-kernel&m=113512330605497&w=2
    RFC http://marc.theaimsgroup.com/?l=linux-kernel&m=114988082814934&w=2
    local_t http://marc.theaimsgroup.com/?l=linux-kernel&m=114991748606690&w=2
    V2 http://marc.theaimsgroup.com/?t=115014808400007&r=1&w=2
    V3 http://marc.theaimsgroup.com/?l=linux-kernel&m=115024767022346&w=2
    V4 http://marc.theaimsgroup.com/?l=linux-kernel&m=115047968808926&w=2

    Signed-off-by: Christoph Lameter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Lameter
     
  • Signed-off-by: Jörn Engel
    Signed-off-by: Adrian Bunk

    Jörn Engel
     

30 Jun, 2006

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/devfs-2.6: (22 commits)
    [PATCH] devfs: Remove it from the feature_removal.txt file
    [PATCH] devfs: Last little devfs cleanups throughout the kernel tree.
    [PATCH] devfs: Rename TTY_DRIVER_NO_DEVFS to TTY_DRIVER_DYNAMIC_DEV
    [PATCH] devfs: Remove the tty_driver devfs_name field as it's no longer needed
    [PATCH] devfs: Remove the line_driver devfs_name field as it's no longer needed
    [PATCH] devfs: Remove the videodevice devfs_name field as it's no longer needed
    [PATCH] devfs: Remove the gendisk devfs_name field as it's no longer needed
    [PATCH] devfs: Remove the miscdevice devfs_name field as it's no longer needed
    [PATCH] devfs: Remove the devfs_fs_kernel.h file from the tree
    [PATCH] devfs: Remove devfs_remove() function from the kernel tree
    [PATCH] devfs: Remove devfs_mk_cdev() function from the kernel tree
    [PATCH] devfs: Remove devfs_mk_bdev() function from the kernel tree
    [PATCH] devfs: Remove devfs_mk_symlink() function from the kernel tree
    [PATCH] devfs: Remove devfs_mk_dir() function from the kernel tree
    [PATCH] devfs: Remove devfs_*_tape() functions from the kernel tree
    [PATCH] devfs: Remove devfs support from the sound subsystem
    [PATCH] devfs: Remove devfs support from the ide subsystem.
    [PATCH] devfs: Remove devfs support from the serial subsystem
    [PATCH] devfs: Remove devfs from the init code
    [PATCH] devfs: Remove devfs from the partition code
    ...

    Linus Torvalds
     

28 Jun, 2006

2 commits

  • Core functions for the rt-mutex subsystem.

    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Arjan van de Ven
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     
  • - add a proper prototype for the following global function:
    - buffer_init()

    - make the following needlessly global function static:
    - end_buffer_async_write()

    Signed-off-by: Adrian Bunk
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     

27 Jun, 2006

8 commits

  • Also fixes up all files that #include it.

    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     
  • This patch removes the devfs code from the init/ directory.

    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild: (40 commits)
    kbuild: trivial fixes in Makefile
    kbuild: adding symbols in Kconfig and defconfig to TAGS
    kbuild: replace abort() with exit(1)
    kbuild: support for %.symtypes files
    kbuild: fix silentoldconfig recursion
    kbuild: add option for stripping modules while installing them
    kbuild: kill some false positives from modpost
    kbuild: export-symbol usage report generator
    kbuild: fix make -rR breakage
    kbuild: append -dirty for updated but uncommited changes
    kbuild: append git revision for all untagged commits
    kbuild: fix module.symvers parsing in modpost
    kbuild: ignore make's built-in rules & variables
    kbuild: bugfix with initramfs
    kbuild: modpost build fix
    kbuild: check license compatibility when building modules
    kbuild: export-type enhancement to modpost.c
    kbuild: add dependency on kernel.release to the package targets
    kbuild: `make kernelrelease' speedup
    kconfig: KCONFIG_OVERWRITECONFIG
    ...

    Linus Torvalds
     
  • * x86-64: (83 commits)
    [PATCH] x86_64: x86_64 stack usage debugging
    [PATCH] x86_64: (resend) x86_64 stack overflow debugging
    [PATCH] x86_64: msi_apic.c build fix
    [PATCH] x86_64: i386/x86-64 Add nmi watchdog support for new Intel CPUs
    [PATCH] x86_64: Avoid broadcasting NMI IPIs
    [PATCH] x86_64: fix apic error on bootup
    [PATCH] x86_64: enlarge window for stack growth
    [PATCH] x86_64: Minor string functions optimizations
    [PATCH] x86_64: Move export symbols to their C functions
    [PATCH] x86_64: Standardize i386/x86_64 handling of NMI_VECTOR
    [PATCH] x86_64: Fix modular pc speaker
    [PATCH] x86_64: remove sys32_ni_syscall()
    [PATCH] x86_64: Do not use -ffunction-sections for modules
    [PATCH] x86_64: Add cpu_relax to apic_wait_icr_idle
    [PATCH] x86_64: adjust kstack_depth_to_print default
    [PATCH] i386/x86-64: adjust /proc/interrupts column headings
    [PATCH] x86_64: Fix race in cpu_local_* on preemptible kernels
    [PATCH] x86_64: Fix fast check in safe_smp_processor_id
    [PATCH] x86_64: x86_64 setup.c - printing cmp related boottime information
    [PATCH] i386/x86-64/ia64: Move polling flag into thread_info_status
    ...

    Manual resolve of trivial conflict in arch/i386/kernel/Makefile

    Linus Torvalds
     
  • Architecture specific configs like this have no business at all
    in init/Kconfig. This prevents it from being set on x86-64

    Pointed out by H.Peter Anvin

    Signed-off-by: Andi Kleen
    Signed-off-by: Linus Torvalds

    Andi Kleen
     
  • These are the generic bits needed to enable reliable stack traces based
    on Dwarf2-like (.eh_frame) unwind information. Subsequent patches will
    enable x86-64 and i386 to make use of this.

    Thanks to Andi Kleen and Ingo Molnar, who pointed out several possibilities
    for improvement.

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

    Jan Beulich
     
  • This patch ensures that initramfs overwrites work correctly, even when dealing
    with device nodes of different types. Furthermore, when replacing a file
    which already exists, we must make very certain that we truncate the existing
    file.

    Signed-off-by: H. Peter Anvin
    Cc: Michael Neuling
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    H. Peter Anvin
     
  • Modify the update_wall_time function so it increments time using the
    clocksource abstraction instead of jiffies. Since the only clocksource driver
    currently provided is the jiffies clocksource, this should result in no
    functional change. Additionally, a timekeeping_init and timekeeping_resume
    function has been added to initialize and maintain some of the new timekeping
    state.

    [hirofumi@mail.parknet.co.jp: fixlet]
    Signed-off-by: John Stultz
    Signed-off-by: OGAWA Hirofumi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    john stultz
     

26 Jun, 2006

1 commit


21 Jun, 2006

1 commit

  • * 'audit.b21' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current: (25 commits)
    [PATCH] make set_loginuid obey audit_enabled
    [PATCH] log more info for directory entry change events
    [PATCH] fix AUDIT_FILTER_PREPEND handling
    [PATCH] validate rule fields' types
    [PATCH] audit: path-based rules
    [PATCH] Audit of POSIX Message Queue Syscalls v.2
    [PATCH] fix se_sen audit filter
    [PATCH] deprecate AUDIT_POSSBILE
    [PATCH] inline more audit helpers
    [PATCH] proc_loginuid_write() uses simple_strtoul() on non-terminated array
    [PATCH] update of IPC audit record cleanup
    [PATCH] minor audit updates
    [PATCH] fix audit_krule_to_{rule,data} return values
    [PATCH] add filtering by ppid
    [PATCH] log ppid
    [PATCH] collect sid of those who send signals to auditd
    [PATCH] execve argument logging
    [PATCH] fix deadlocks in AUDIT_LIST/AUDIT_LIST_RULES
    [PATCH] audit_panic() is audit-internal
    [PATCH] inotify (5/5): update kernel documentation
    ...

    Manual fixup of conflict in unclude/linux/inotify.h

    Linus Torvalds
     

20 Jun, 2006

1 commit

  • In this implementation, audit registers inotify watches on the parent
    directories of paths specified in audit rules. When audit's inotify
    event handler is called, it updates any affected rules based on the
    filesystem event. If the parent directory is renamed, removed, or its
    filesystem is unmounted, audit removes all rules referencing that
    inotify watch.

    To keep things simple, this implementation limits location-based
    auditing to the directory entries in an existing directory. Given
    a path-based rule for /foo/bar/passwd, the following table applies:

    passwd modified -- audit event logged
    passwd replaced -- audit event logged, rules list updated
    bar renamed -- rule removed
    foo renamed -- untracked, meaning that the rule now applies to
    the new location

    Audit users typically want to have many rules referencing filesystem
    objects, which can significantly impact filtering performance. This
    patch also adds an inode-number-based rule hash to mitigate this
    situation.

    The patch is relative to the audit git tree:
    http://kernel.org/git/?p=linux/kernel/git/viro/audit-current.git;a=summary
    and uses the inotify kernel API:
    http://lkml.org/lkml/2006/6/1/145

    Signed-off-by: Amy Griffis
    Signed-off-by: Al Viro

    Amy Griffis
     

09 Jun, 2006

1 commit

  • This makes it possible to change two options which were hardcoded sofar.
    1. Any symbol can now take the role of CONFIG_MODULES
    2. The more useful option is to change the list of default file names,
    which kconfig uses to load the base configuration if .config isn't
    available.

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

    Roman Zippel
     

30 May, 2006

1 commit


16 May, 2006

3 commits

  • Signed-off-by: David Woodhouse

    David Woodhouse
     
  • When we fail to mount from a valid root device list out the filesystems we
    have tried to mount it with. This gives the user vital diagnostics as to
    what is missing from their kernel.

    For example in the fragment below the kernel does not have CRAMFS compiled
    into the kernel and yet appears to recognise it at the RAMDISK detect
    stage. Later the mount fails as we don't have the filesystem.

    RAMDISK: cramfs filesystem found at block 0
    RAMDISK: Loading 1604KiB [1 disk] into ram disk... done.
    XFS: bad magic number
    XFS: SB validate failed
    No filesystem could mount root, tried: reiserfs ext3 ext2 msdos vfat
    iso9660 jfs xfs
    Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(8,1)

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

    Andy Whitcroft
     
  • Copy the filenames of hardlinks when inserting them into the hash, since
    the "name" pointer may point to scratch space (name_buf). Not doing so
    results in corruption if the scratch space is later overwritten: the wrong
    file may be hardlinked, or, if the scratch space contains garbage, the link
    will fail and a 0-byte file will be created instead.

    Signed-off-by: Mark Huang
    Acked-by: Al Viro
    Cc: "H. Peter Anvin"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mark Huang
     

09 May, 2006

1 commit


02 May, 2006

1 commit

  • Suppress the initcall-return-value warnings unless initcall_debug was
    specified.

    They do find bugs, but they're extremely small ones and as Andi points out,
    people get distressed.

    Cc: Andi Kleen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     

19 Apr, 2006

1 commit


11 Apr, 2006

1 commit


29 Mar, 2006

1 commit


27 Mar, 2006

4 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial:
    drivers/char/ftape/lowlevel/fdc-io.c: Correct a comment
    Kconfig help: MTD_JEDECPROBE already supports Intel
    Remove ugly debugging stuff
    do_mounts.c: Minor ROOT_DEV comment cleanup
    BUG_ON() Conversion in drivers/s390/block/dasd_devmap.c
    BUG_ON() Conversion in mm/mempool.c
    BUG_ON() Conversion in mm/memory.c
    BUG_ON() Conversion in kernel/fork.c
    BUG_ON() Conversion in ipc/sem.c
    BUG_ON() Conversion in fs/ext2/
    BUG_ON() Conversion in fs/hfs/
    BUG_ON() Conversion in fs/dcache.c
    BUG_ON() Conversion in fs/buffer.c
    BUG_ON() Conversion in input/serio/hp_sdc_mlc.c
    BUG_ON() Conversion in md/dm-table.c
    BUG_ON() Conversion in md/dm-path-selector.c
    BUG_ON() Conversion in drivers/isdn
    BUG_ON() Conversion in drivers/char
    BUG_ON() Conversion in drivers/mtd/

    Linus Torvalds
     
  • I noticed that after boot with an initrd in 2.6.16 the rootfs had:

    --w-r-xr-T 1 root root 6241141 Jan 1 1970 initrd.image

    Which is caused by a small typo:

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

    Jason Gunthorpe
     
  • Since the addition of boot_cpu_init(), fixup_cpu_present_map() has been a
    no-op. That's because fixup_cpu_present_map() won't touch cpu_present_map if
    it has any bits set, and boot_cpu_init() sets a bit.

    So remove fixup_cpu_present_map().

    A consequence of this (actually of the boot_cpu_init() change) is that the
    architecture _must_ populate cpu_present_map itself (probably in
    smp_prepare_cpus()). fixup_cpu_present_map() won't do it any more.

    If the architecture doesn't do this, it'll only bring up a single CPU.

    The other side effect (though less serious) is that smp_prepare_boot_cpu() no
    longer needs to mark the boot cpu in the online and present maps -
    boot_cpu_init() does that for everyone (to make early printks work).

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

    Andrew Morton
     
  • The ROOT_DEV comment is no longer accurate, it now seems to be
    initialized in init/do_mounts.c.

    Signed-off-by: Florin Malita
    Signed-off-by: Adrian Bunk

    Florin Malita
     

26 Mar, 2006

4 commits

  • * master.kernel.org:/pub/scm/linux/kernel/git/sam/kbuild: (46 commits)
    kbuild: remove obsoleted scripts/reference_* files
    kbuild: fix make help & make *pkg
    kconfig: fix time ordering of writes to .kconfig.d and include/linux/autoconf.h
    Kconfig: remove the CONFIG_CC_ALIGN_* options
    kbuild: add -fverbose-asm to i386 Makefile
    kbuild: clean-up genksyms
    kbuild: Lindent genksyms.c
    kbuild: fix genksyms build error
    kbuild: in makefile.txt note that Makefile is preferred name for kbuild files
    kbuild: replace PHONY with FORCE
    kbuild: Fix bug in crc symbol generating of kernel and modules
    kbuild: change kbuild to not rely on incorrect GNU make behavior
    kbuild: when warning symbols exported twice now tell user this is the problem
    kbuild: fix make dir/file.xx when asm symlink is missing
    kbuild: in the section mismatch check try harder to find symbols
    kbuild: fix section mismatch check for unwind on IA64
    kbuild: kill false positives from section mismatch warnings for powerpc
    kbuild: kill trailing whitespace in modpost & friends
    kbuild: small update of allnoconfig description
    kbuild: make namespace.pl CROSS_COMPILE happy
    ...

    Trivial conflict in arch/ppc/boot/Makefile manually fixed up

    Linus Torvalds
     
  • Initramfs initrd images do not need a ramdisk device, so remove this
    restriction in Kconfig. BLK_DEV_RAM=n saves about 13k on i386. Also
    without ramdisk device there's no need for "dry run", so initramfs unpacks
    much faster.

    People using cramfs, squashfs, or gzipped ext2/minix initrd images are
    probably smart enough not to turn off ramdisk support by accident.

    Cc: Al Viro
    Cc: Christoph Hellwig
    Cc: "H. Peter Anvin"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Zdenek Pavlas
     
  • This patch adds a proper prototype for setup_arch() in init.h.

    This patch is based on a patch by Ben Dooks .

    Signed-off-by: Adrian Bunk
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     
  • We presently ignore the return values from initcalls. But that can carry
    useful debugging information. So print it out if it's non-zero.

    It turns out the -ENODEV happens quite a lot, due to built-in drivers which
    have no hardware to drive. So suppress that unless initcall_debug was
    specified.

    Also make the warning message more friendly by printing the name of the
    initcall function.

    Also drop the KERN_DEBUG from the initcall_debug message. If we specified
    inticall_debug then we obviously want to see the messages.

    Acked-by: Paul Jackson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton