04 Nov, 2006

22 commits

  • Add a swsusp debugging mode. This does everything that's needed for a suspend
    except for actually suspending. So we can look in the log messages and work
    out a) what code is being slow and b) which drivers are misbehaving.

    (1)
    # echo testproc > /sys/power/disk
    # echo disk > /sys/power/state

    This should turn off the non-boot CPU, freeze all processes, wait for 5
    seconds and then thaw the processes and the CPU.

    (2)
    # echo test > /sys/power/disk
    # echo disk > /sys/power/state

    This should turn off the non-boot CPU, freeze all processes, shrink
    memory, suspend all devices, wait for 5 seconds, resume the devices etc.

    Cc: Pavel Machek
    Cc: Stefan Seyfried
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rafael J. Wysocki
     
  • WARNING: vmlinux - Section mismatch: reference to .init.data:acpi_noirq from .text between 'pcibios_penalize_isa_irq' (at offset 0xc026ffa1) and 'pirq_serverworks_get'

    Acked-by: "Brown, Len"
    Cc: Andi Kleen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • Apparently FUTEX_FD is unfixably racy and nothing uses it (or if it does, it
    shouldn't).

    Add a warning printk, give any remaining users six months to migrate off it.

    Cc: Ulrich Drepper
    Cc: Ingo Molnar
    Acked-by: Thomas Gleixner
    Cc: Rusty Russell
    Cc: Alan Cox
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • printk_ratelimit() has global state which makes it not useful for callers
    which wish to perform ratelimiting at a particular frequency.

    Add a printk_timed_ratelimit() which utilises caller-provided state storage to
    permit more flexibility.

    This function can in fact be used for things other than printk ratelimiting
    and is perhaps poorly named.

    Cc: Ulrich Drepper
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: Rusty Russell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • It looks like there is a bug in init_reap_node() in slab.c that can cause
    multiple oops's on certain ES7000 configurations. The variable reap_node
    is defined per cpu, but only initialized on a single CPU. This causes an
    oops in next_reap_node() when __get_cpu_var(reap_node) returns the wrong
    value. Fix is below.

    Signed-off-by: Dan Yeisley
    Cc: Andi Kleen
    Acked-by: Christoph Lameter
    Cc: Pekka Enberg
    Cc: Manfred Spraul
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Yeisley
     
  • Taken from http://bugzilla.kernel.org/show_bug.cgi?id=7439

    It looks like device registration in drivers/char/ipmi/ipmi_si_intf.c was
    cleaned up and a small error was made when setting the class_mask. The fix
    is simple as the correct mask value is defined in the code but is not used.

    Acked-by: Corey Minyard
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yvan Seth
     
  • When I was performing some operations on NFS, I got below error on server
    side.

    =============================================
    [ INFO: possible recursive locking detected ]
    2.6.19-prep #1
    ---------------------------------------------
    nfsd4/3525 is trying to acquire lock:
    (&inode->i_mutex){--..}, at: [] mutex_lock+0x21/0x24

    but task is already holding lock:
    (&inode->i_mutex){--..}, at: [] mutex_lock+0x21/0x24

    other info that might help us debug this:
    2 locks held by nfsd4/3525:
    #0: (client_mutex){--..}, at: [] mutex_lock+0x21/0x24
    #1: (&inode->i_mutex){--..}, at: [] mutex_lock+0x21/0x24

    stack backtrace:
    [] show_trace_log_lvl+0x58/0x16a
    [] show_trace+0xd/0x10
    [] dump_stack+0x19/0x1b
    [] __lock_acquire+0x778/0x99c
    [] lock_acquire+0x4b/0x6d
    [] __mutex_lock_slowpath+0xbc/0x20a
    [] mutex_lock+0x21/0x24
    [] vfs_rmdir+0x76/0xf8
    [] nfsd4_clear_clid_dir+0x2c/0x41 [nfsd]
    [] nfsd4_remove_clid_dir+0xb1/0xe8 [nfsd]
    [] laundromat_main+0x9b/0x1c3 [nfsd]
    [] run_workqueue+0x7a/0xbb
    [] worker_thread+0xd2/0x107
    [] kthread+0xc3/0xf2
    [] kernel_thread_helper+0x5/0xb
    ===================================================================

    Cause for this problem was,2 successive mutex_lock calls on 2 diffrent inodes ,as shown below

    static int
    nfsd4_clear_clid_dir(struct dentry *dir, struct dentry *dentry)
    {
    int status;

    /* For now this directory should already be empty, but we empty it of
    * any regular files anyway, just in case the directory was created by
    * a kernel from the future.... */
    nfsd4_list_rec_dir(dentry, nfsd4_remove_clid_file);
    mutex_lock(&dir->d_inode->i_mutex);
    status = vfs_rmdir(dir->d_inode, dentry);
    ...

    int vfs_rmdir(struct inode *dir, struct dentry *dentry)
    {
    int error = may_delete(dir, dentry, 1);

    if (error)
    return error;

    if (!dir->i_op || !dir->i_op->rmdir)
    return -EPERM;

    DQUOT_INIT(dir);

    mutex_lock(&dentry->d_inode->i_mutex);
    ...

    So I have developed the patch to overcome this problem.

    Signed-off-by: Srinivasa DS
    Cc: Neil Brown
    Cc: Peter Zijlstra
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Srinivasa Ds
     
  • Call sysdev_class_unregister() on failure in edac_sysfs_memctrl_setup()
    and decrease identation level for clear logic.

    Acked-by: Doug Thompson
    Signed-off-by: Akinobu Mita
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     
  • This just ignore the remaining pages, and remove unneeded unlock_pages().

    Signed-off-by: OGAWA Hirofumi
    Cc: Steven French
    Cc: Miklos Szeredi
    Acked-by: Steven Whitehouse
    Cc: Trond Myklebust
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    OGAWA Hirofumi
     
  • This just ignore the remaining pages.

    Signed-off-by: OGAWA Hirofumi
    Cc: Steven French
    Cc: Miklos Szeredi
    Cc: Steven Whitehouse
    Cc: Trond Myklebust
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    OGAWA Hirofumi
     
  • This just ignore the remaining pages, and will fix a forgot put_pages_list().

    Signed-off-by: OGAWA Hirofumi
    Cc: Steven French
    Cc: Miklos Szeredi
    Cc: Steven Whitehouse
    Cc: Trond Myklebust
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    OGAWA Hirofumi
     
  • Current read_pages() assume ->readpages() frees the passed pages.

    This patch free the pages in ->read_pages(), if those were remaining in the
    pages_list. So, readpages() just can ignore the remaining pages in
    pages_list.

    Signed-off-by: OGAWA Hirofumi
    Cc: Steven French
    Cc: Miklos Szeredi
    Cc: Steven Whitehouse
    Cc: Trond Myklebust
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    OGAWA Hirofumi
     
  • Fix module_param/sysfs file permission typo.

    Clean up MODULE_PARM_DESC strings to avoid fancy (and incorrect)
    formatting.

    Fix header includes for lkdtm; add some needed ones, remove unused ones;
    and fix this gcc warning:
    drivers/misc/lkdtm.c:150: warning: 'struct buffer_head' declared inside parameter list
    drivers/misc/lkdtm.c:150: warning: its scope is only this definition or declaration, which is probably not what you want

    Signed-off-by: Randy Dunlap
    Cc: Ankita Garg
    Cc: Vivek Goyal
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • ufs2 fails to mount on x86_64, claiming bad magic. This is because
    ufs_super_block_third's fs_un1 member is padded out by 4 bytes for 8-byte
    alignment, pushing down the rest of the struct.

    Forcing this to be packed solves it. I took a quick look over other
    on-disk structures and didn't immediately find other problems. I was able
    to mount & ls a populated ufs2 filesystem w/ this change.

    Signed-off-by: Eric Sandeen
    Cc: Evgeniy Dushistov
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric Sandeen
     
  • Un-needed add-store operation wastes a few bytes.
    8 bytes wasted with -O2, on a ppc.

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

    nkalmala
     
  • Fix two issuses related to ipc_ids->entries freeing.

    1. When freeing ipc namespace we need to free entries allocated
    with ipc_init_ids().

    2. When removing old entries in grow_ary() ipc_rcu_putref()
    may be called on entries set to &ids->nullentry earlier in
    ipc_init_ids().
    This is almost impossible without namespaces, but with
    them this situation becomes possible.

    Found during OpenVZ testing after obvious leaks in beancounters.

    Signed-off-by: Pavel Emelianov
    Cc: Kirill Korotaev
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pavel Emelianov
     
  • Move journal-api into filesystems.tmpl as a Chapter. Applies on top of the
    previous docbook: make a filesystems book patch.

    Remove trailing whitespace from journal-api chapter. Align some of the
    tags.

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

    Randy Dunlap
     
  • Correct a few comments in kernel-doc Doc and source files.

    (akpm: note: the patch removes a non-ascii character and might have to be
    applied by hand..)

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

    Randy Dunlap
     
  • 758333458aa719bfc26ec16eafd4ad3a9e96014d fixes the not checked copy_to_user
    return value of compat_sys_pselect7. I ran into this too because of an old
    source tree, but my fix would look quite a bit different to Andi's fix.

    The reason is that the compat function IMHO should behave the very same as
    the non-compat function if possible. Since sys_pselect7 does not return
    -EFAULT in this specific case, change the compat code so it behaves like
    sys_pselect7.

    Cc: David Woodhouse
    Cc: Andi Kleen
    Signed-off-by: Heiko Carstens
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Heiko Carstens
     
  • This allows udev to do something intelligent when an array becomes
    available.

    Acked-by: Greg KH
    Signed-off-by: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    NeilBrown
     
  • Neil's xterms are too wide.

    Cc: Neil Brown
    Cc: Jens Axboe
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • I missed a pointer dereference in this kmalloc result check.

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

    Michael Halcrow
     

03 Nov, 2006

18 commits