31 Oct, 2005

40 commits

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

    Horms
     
  • A couple of (char *) casts removed in a previous cleanup patch in
    lib/string.c:memmove() were actually useful, as they suppressed a couple of
    warnings:

    assignment discards qualifiers from pointer target type

    Fix by declaring the local variable const in the first place, so casts
    aren't needed to strip the const qualifier.

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

    Paul Jackson
     
  • From: Hareesh Nagarajan

    Signed-off-by: Hareesh Nagarajan
    Acked-by: Matt Mackall
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matt Mackall
     
  • If a filesystem passes an idiotic blocksize into bread(), __getblk_slow() will
    warn and will return NULL. We have a report (from Hubert Tonneau
    ) of isofs_fill_super() doing this (passing in
    a silly block size) against an unplugged CDROM drive.

    But a couple of __getblk_slow() callers forgot to check for the NULL bh, hence
    oops.

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

    Andrew Morton
     
  • __MUTEX_INITIALIZER() has no users, and equates to the more commonly used
    DECLARE_MUTEX(), thus making it pretty much redundant. Remove it for good.

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

    Arthur Othieno
     
  • The driver had incorrectly wrapped module_init(rp_init) in #ifdef MODULE,
    so it worked only when compiled as a module.

    Tested by Wolfgang Denk with this device:

    00:0e.0 Communication controller: Comtrol Corporation RocketPort 8 port w/RJ11 connectors (rev 04)
    Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
    Status: Cap- 66Mhz- UDF- FastB2B- ParErr- DEVSEL=slow >TAbort- SERR-
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bjorn Helgaas
     
  • This change corrects an omission in posix_cpu_timer_schedule, so that it
    correctly propagates the overrun calculation to where it will get reported
    to the user.

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

    Roland McGrath
     
  • This patch is a rewrite of the one submitted on October 1st, using modules
    (http://marc.theaimsgroup.com/?l=linux-kernel&m=112819093522998&w=2).

    This rewrite adds a tristate CONFIG_RCU_TORTURE_TEST, which enables an
    intense torture test of the RCU infratructure. This is needed due to the
    continued changes to the RCU infrastructure to accommodate dynamic ticks,
    CPU hotplug, realtime, and so on. Most of the code is in a separate file
    that is compiled only if the CONFIG variable is set. Documentation on how
    to run the test and interpret the output is also included.

    This code has been tested on i386 and ppc64, and an earlier version of the
    code has received extensive testing on a number of architectures as part of
    the PREEMPT_RT patchset.

    Signed-off-by: "Paul E. McKenney"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paul E. McKenney
     
  • Signed-off-by: Alexey Dobriyan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     
  • Fix comment describing BUILD_BUG_ON: BUG_ON is not an assertion
    (unfortunately).

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

    Nikita Danilov
     
  • This updates .owner field of struct pci_driver.

    This allows SYSFS to create the symlink from the driver to the module which
    provides it.

    Signed-off-by: Laurent Riffard
    Acked-by: Alan Cox
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Laurent Riffard
     
  • This updates .owner field of struct pci_driver.

    This allows SYSFS to create the symlink from the driver to the module which
    provides it.

    Signed-off-by: Laurent Riffard
    Cc: Paul Fulghum
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Laurent Riffard
     
  • This updates .owner field of struct pci_driver.

    This allows SYSFS to create the symlink from the driver to the module which
    provides it.

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

    Laurent Riffard
     
  • This patch fixes a long-standing vgacon bug: characters with the bright bit
    set were left on the screen and not blacked out. All I did was that I
    lookuped up some examples on the net about setting the vga palette, and
    added the call missing from the linux kernel, but included in all other
    ones. It works for me.

    You can test this by writing something with the bright set to the
    console, for example:
    echo -e "\e[1;31mhello there\e[0m"
    and then wait for the console to blank itself (by default, after 10 mins
    of inactivity), maybe making it faster using
    setterm -blank 1
    so you only have to wait 1 minute.

    Signed-off-by: Pozsar Balazs
    Cc: James Simmons
    Cc: "Antonino A. Daplas"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pozsar Balazs
     
  • This patch adds tests for the return value of sb_getblk() in the ext2/3
    filesystems. In fs/buffer.c it is stated that the getblk() function never
    fails. However, it does can return NULL in some situations due to I/O
    errors, which may lead us to NULL pointer dereferences

    Signed-off-by: Glauber de Oliveira Costa
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Glauber de Oliveira Costa
     
  • list_move(&inode->i_list, &inode_in_use);
    } else {
    list_move(&inode->i_list, &inode_unused);
    + inodes_stat.nr_unused++;
    }
    }
    wake_up_inode(inode);

    Are you sure the above diff is correct? It was added somewhere between
    2.6.5 and 2.6.8. I think it's wrong.

    The only way I can imagine the i_count to be zero in the above path, is
    that I_WILL_FREE is set. And if I_WILL_FREE is set, then we must not
    increase nr_unused. So I believe the above change is buggy and it will
    definitely overstate the number of unused inodes and it should be backed
    out.

    Note that __writeback_single_inode before calling __sync_single_inode, can
    drop the spinlock and we can have both the dirty and locked bitflags clear
    here:

    spin_unlock(&inode_lock);
    __wait_on_inode(inode);
    iput(inode);
    XXXXXXX
    spin_lock(&inode_lock);
    }
    use inode again here

    a construct like the above makes zero sense from a reference counting
    standpoint.

    Either we don't ever use the inode again after the iput, or the
    inode_lock should be taken _before_ executing the iput (i.e. a __iput
    would be required). Taking the inode_lock after iput means the iget was
    useless if we keep using the inode after the iput.

    So the only chance the 2.6 was safe to call __writeback_single_inode
    with the i_count == 0, is that I_WILL_FREE is set (I_WILL_FREE will
    prevent the VM to free the inode in XXXXX).

    Potentially calling the above iput with I_WILL_FREE was also wrong
    because it would recurse in iput_final (the second mainline bug).

    The below (untested) patch fixes the nr_unused accounting, avoids recursing
    in iput when I_WILL_FREE is set and makes sure (with the BUG_ON) that we
    don't corrupt memory and that all holders that don't set I_WILL_FREE, keeps
    a reference on the inode!

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

    Andrea Arcangeli
     
  • sparse complains about every MODULE_PARM used in a module: warning: symbol
    '__parm_foo' was not declared. Should it be static?

    The fix is to split declaration and initialization. While MODULE_PARM is
    obsolete, it's not something sparse should report.

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

    Pavel Roskin
     
  • They aren't used anywhere in that file.

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

    Nicolas Pitre
     
  • Because people can play games reprogramming keys and leaving traps for the
    next user of the console.

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

    Andrew Morton
     
  • Convert existing function docs to kernel-doc format. Eliminate all
    kernel-doc warnings. Fix some doc typos and a little whitespace cleanup.

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

    Randy Dunlap
     
  • Define jiffies_64 in kernel/timer.c rather than having 24 duplicated
    defines in each architecture.

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

    Thomas Gleixner
     
  • This ioctl doesn't exist for native i386.

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

    Brian Gerst
     
  • Fix warnings from sparse due to un-declared functions that should either
    have a header file or have been declared static

    fs/ext2/bitmap.c:14:15: warning: symbol 'ext2_count_free' was not declared. Should it be static?
    fs/ext2/namei.c:92:15: warning: symbol 'ext2_get_parent' was not declared. Should it be static?
    fs/ext3/bitmap.c:15:15: warning: symbol 'ext3_count_free' was not declared. Should it be static?
    fs/ext3/namei.c:1013:15: warning: symbol 'ext3_get_parent' was not declared. Should it be static?
    fs/ext3/xattr.c:214:1: warning: symbol 'ext3_xattr_block_get' was not declared. Should it be static?
    fs/ext3/xattr.c:358:1: warning: symbol 'ext3_xattr_block_list' was not declared. Should it be static?
    fs/ext3/xattr.c:630:1: warning: symbol 'ext3_xattr_block_find' was not declared. Should it be static?
    fs/ext3/xattr.c:863:1: warning: symbol 'ext3_xattr_ibody_find' was not declared. Should it be static?

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

    Ben Dooks
     
  • Signed-off-by: Mark Gross
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mark Gross
     
  • de_thread() sends SIGKILL to all sub-threads and waits them to die in 'D'
    state. It is possible that one of the threads already dequeued coredump
    signal. When de_thread() unlocks ->sighand->lock that thread can enter
    do_coredump()->coredump_wait() and cause a deadlock.

    Signed-off-by: Oleg Nesterov
    Cc: Roland McGrath
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Oleg Nesterov
     
  • Added a Receive_Abort to the Marvell serial driver

    Fix occasional input overrun errors on Marvell serial driver

    - If the Marvell serial driver is repeatedly started and then stopped it
    will occasionally report an input overrun error when started.

    - Added a Receive_Abort to the Marvell serial driver to abort previously
    received receive errors when re-starting the receive

    Acked-by: Mark A. Greer
    Signed-off-by: Carlos Sanchez
    Cc: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Carlos Sanchez
     
  • Setting ctime is implicit in all setattr cases, so the FATTR_CTIME
    definition is unnecessary.

    It is used by neither the kernel nor by userspace.

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

    Miklos Szeredi
     
  • Correct some typos and inconsistent use of "initialise" vs "initialize" in
    comments. Reported by Ioannis Barkas.

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

    Miklos Szeredi
     
  • Fix-up the CONFIG_FRAME_POINTER help text language a bit.

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

    Jesper Juhl
     
  • Back about a year ago when I last fiddled heavily with the do_wait code, I
    was thinking too hard about the wrong thing and I now think I introduced a
    bug whose inverse thought I was fixing.

    Apparently noone was looking too hard over much shoulder, so as to cite my
    bogus reasoning at the time. In the race condition when PTRACE_ATTACH is
    about to steal a child and then the child hits a tracing event (what
    my_ptrace_child checks for), the real parent does need to set its flag
    noting it has some eligible live children. Otherwise a spurious ECHILD
    error is possible, since the child in question is not yet on the
    ptrace_children list.

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

    Roland McGrath
     
  • Various small mods for the Altix ioc4 serial driver - mostly cleanup:
    - remove UIF_INITIALIZED usage
    - use the 'lock' from uart_port
    - better multiple card support

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

    Pat Gefre
     
  • I noticed some problems while running ext3 with the debug flag set on.
    More precisely, I was unable to umount the filesystem. Some investigation
    took me to the patch that follows.

    At a first glance , the lock/unlock I've taken out seems really not
    necessary, as the main code (outside debug) does not lock the super. The
    only additional danger operations that debug code introduces seems to be
    related to bitmap, but bitmap operations tends to be all atomic anyway.

    I also took the opportunity to fix 2 spelling errors.

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

    Glauber de Oliveira Costa
     
  • This patch deletes pointless code from coredump_wait().

    1. It does useless mm->core_waiters inc/dec under mm->mmap_sem,
    but any changes to ->core_waiters have no effect until we drop
    ->mmap_sem.

    2. It calls yield() for absolutely unknown reason.

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

    Oleg Nesterov
     
  • The PF_DEAD setting doesn't belong to exit_notify(), move it to a proper
    place.

    Signed-off-by: Coywolf Qi Hunt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Coywolf Qi Hunt
     
  • - Removes some trailing whitespace

    - Breaks long lines and make other small changes to conform to CodingStyle

    - Add explicit printk loglevels in two places.

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

    Jesper Juhl
     
  • Remove some unneeded casts.
    Avoid an assignment in the case of kmalloc failure.
    Break a few instances of if (foo) whatever; into two lines.

    Signed-off-by: Jesper Juhl
    Acked-by: Jens Axboe
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jesper Juhl
     
  • The attached patch gets rid of a "statement without effect" warning when
    CONFIG_KEYS is disabled by making use of the return value of key_get().
    The compiler will optimise all of this away when keys are disabled.

    Signed-Off-By: David Howells
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Howells
     
  • The attached patch adds LSM hooks for key management facilities. The notable
    changes are:

    (1) The key struct now supports a security pointer for the use of security
    modules. This will permit key labelling and restrictions on which
    programs may access a key.

    (2) Security modules get a chance to note (or abort) the allocation of a key.

    (3) The key permission checking can now be enhanced by the security modules;
    the permissions check consults LSM if all other checks bear out.

    (4) The key permissions checking functions now return an error code rather
    than a boolean value.

    (5) An extra permission has been added to govern the modification of
    attributes (UID, GID, permissions).

    Note that there isn't an LSM hook specifically for each keyctl() operation,
    but rather the permissions hook allows control of individual operations based
    on the permission request bits.

    Key management access control through LSM is enabled by automatically if both
    CONFIG_KEYS and CONFIG_SECURITY are enabled.

    This should be applied on top of the patch ensubjected:

    [PATCH] Keys: Possessor permissions should be additive

    Signed-Off-By: David Howells
    Signed-off-by: Chris Wright
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Howells
     
  • Export user-defined key operations so that those who wish to define their
    own key type based on the user-defined key operations may do so (as has
    been requested).

    The header file created has been placed into include/keys/user-type.h, thus
    creating a directory where other key types may also be placed. Any
    objections to doing this?

    Signed-Off-By: David Howells
    Signed-Off-By: Arjan van de Ven
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Howells
     
  • This patch removes page_pte_prot and page_pte macros from all
    architectures. Some architectures define both, some only page_pte (broken)
    and others none. These macros are not used anywhere.

    page_pte_prot(page, prot) is identical to mk_pte(page, prot) and
    page_pte(page) is identical to page_pte_prot(page, __pgprot(0)).

    * The following architectures define both page_pte_prot and page_pte

    arm, arm26, ia64, sh64, sparc, sparc64

    * The following architectures define only page_pte (broken)

    frv, i386, m32r, mips, sh, x86-64

    * All other architectures define neither

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

    Tejun Heo