30 Sep, 2006

40 commits

  • Signed-off-by: Chas Williams
    Signed-off-by: David S. Miller

    Chas Williams
     
  • Signed-off-by: Chas Williams
    Signed-off-by: David S. Miller

    Chas Williams
     
  • Signed-off-by: Chas Williams
    Signed-off-by: David S. Miller

    Chas Williams
     
  • Signed-off-by: Chas Williams
    Signed-off-by: David S. Miller

    Chas Williams
     
  • Signed-off-by: Chas Williams
    Signed-off-by: David S. Miller

    Chas Williams
     
  • Signed-off-by: Chas Williams
    Signed-off-by: David S. Miller

    Chas Williams
     
  • Signed-off-by: Chas Williams
    Signed-off-by: David S. Miller

    Chas Williams
     
  • We only need the timestamp on COOKIE-ECHO chunks, so instead of always
    timestamping every SCTP packet, let common code timestamp if the socket
    option is set. For COOKIE-ECHO, simply get the time of day if we don't
    have a timestamp. This introduces a small possibility that the cookie
    may be considered expired, but it will be renegotiated.

    Signed-off-by: Vlad Yasevich
    Signed-off-by: Sridhar Samudrala
    Signed-off-by: David S. Miller

    Vlad Yasevich
     
  • Signed-off-by: Vlad Yasevich
    Signed-off-by: Sridhar Samudrala
    Signed-off-by: David S. Miller

    Vlad Yasevich
     
  • Currently if the sender is sending small messages, it can cause a receiver
    to run out of receive buffer space even when the advertised receive window
    is still open and results in packet drops and retransmissions. Including
    a overhead while updating the sender's view of peer receive window will
    reduce the chances of receive buffer space overshooting the receive window.

    Signed-off-by: Sridhar Samudrala
    Signed-off-by: David S. Miller

    Sridhar Samudrala
     
  • This allows more aggressive bundling of chunks when sending small
    messages.

    Signed-off-by: Sridhar Samudrala
    Signed-off-by: David S. Miller

    Sridhar Samudrala
     
  • MSI is defined to be 32-bit write. The 5706 does 64-bit MSI writes
    with byte enables disabled on the unused 32-bit word. This is legal
    but causes problems on the AMD 8132 which will eventually stop
    responding after a while.

    Without this patch, the MSI test done by the driver during open will
    pass, but MSI will eventually stop working after a few MSIs are
    written by the device.

    AMD believes this incompatibility is unique to the 5706, and
    prefers to locally disable MSI rather than globally disabling it
    using pci_msi_quirk.

    Update version to 1.4.45.

    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Michael Chan
     
  • Fix some issues Steve Grubb had with the way NetLabel was using the audit
    subsystem. This should make NetLabel more consistent with other kernel
    generated audit messages specifying configuration changes.

    Signed-off-by: Paul Moore
    Acked-by: Steve Grubb
    Signed-off-by: David S. Miller

    Paul Moore
     
  • Cc: Jeff Dike
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ollie Wild
     
  • Accepted connections of types other than AF_INET, AF_INET6, AF_UNIX won't
    have an appropriate label derived from the peer, so don't use it.

    Signed-off-by: David Woodhouse
    Acked-by: Stephen Smalley
    Acked-by: James Morris
    Acked-by: Paul Moore
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Woodhouse
     
  • * 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband: (33 commits)
    IB/ipath: Fix lockdep error upon "ifconfig ibN down"
    IB/ipath: Fix races with ib_resize_cq()
    IB/ipath: Support new PCIE device, QLE7142
    IB/ipath: Set CPU affinity early
    IB/ipath: Fix EEPROM read when driver is compiled with -Os
    IB/ipath: Fix and recover TXE piobuf and PBC parity errors
    IB/ipath: Change HT CRC message to indicate how to resolve problem
    IB/ipath: Clean up module exit code
    IB/ipath: Call mtrr_del with correct arguments
    IB/ipath: Flush RWQEs if access error or invalid error seen
    IB/ipath: Improved support for PowerPC
    IB/ipath: Drop unnecessary "(void *)" casts
    IB/ipath: Support multiple simultaneous devices of different types
    IB/ipath: Fix mismatch in shifts and masks for printing debug info
    IB/ipath: Fix compiler warnings and errors on non-x86_64 systems
    IB/ipath: Print more informative parity error messages
    IB/ipath: Ensure that PD of MR matches PD of QP checking the Rkey
    IB/ipath: RC and UC should validate SLID and DLID
    IB/ipath: Only allow complete writes to flash
    IB/ipath: Count SRQs properly
    ...

    Linus Torvalds
     
  • * git://oss.sgi.com:8090/xfs/xfs-2.6: (49 commits)
    [XFS] Remove v1 dir trace macro - missed in a past commit.
    [XFS] 955947: Infinite loop in xfs_bulkstat() on formatter() error
    [XFS] pv 956241, author: nathans, rv: vapo - make ino validation checks
    [XFS] pv 956240, author: nathans, rv: vapo - Minor fixes in
    [XFS] Really fix use after free in xfs_iunpin.
    [XFS] Collapse sv_init and init_sv into just the one interface.
    [XFS] standardize on one sema init macro
    [XFS] Reduce endian flipping in alloc_btree, same as was done for
    [XFS] Minor cleanup from dio locking fix, remove an extra conditional.
    [XFS] Fix kmem_zalloc_greedy warnings on 64 bit platforms.
    [XFS] pv 955157, rv bnaujok - break the loop on EFAULT formatter() error
    [XFS] pv 955157, rv bnaujok - break the loop on formatter() error
    [XFS] Fixes the leak in reservation space because we weren't ungranting
    [XFS] Add lock annotations to xfs_trans_update_ail and
    [XFS] Fix a porting botch on the realtime subvol growfs code path.
    [XFS] Minor code rearranging and cleanup to prevent some coverity false
    [XFS] Remove a no-longer-correct debug assert from dio completion
    [XFS] Add a greedy allocation interface, allocating within a min/max size
    [XFS] Improve error handling for the zero-fsblock extent detection code.
    [XFS] Be more defensive with page flags (error/private) for metadata
    ...

    Linus Torvalds
     
  • Fix undefined reference in i2c_sibyte_exit().

    drivers/built-in.o: In function `i2c_sibyte_exit':
    i2c-sibyte.c:(.exit.text+0x368): undefined reference to `i2c_del_bus'
    i2c-sibyte.c:(.exit.text+0x368): relocation truncated to fit: R_MIPS_26 against `i2c_del_bus'
    i2c-sibyte.c:(.exit.text+0x38c): undefined reference to `i2c_del_bus'
    i2c-sibyte.c:(.exit.text+0x38c): relocation truncated to fit: R_MIPS_26 against `i2c_del_bus'

    Signed-off-by: Yoichi Yuasa
    Signed-off-by: Jean Delvare
    Signed-off-by: Linus Torvalds

    Yoichi Yuasa
     
  • Fix obscure race condition in kernel/cpuset.c attach_task() code.

    There is basically zero chance of anyone accidentally being harmed by this
    race.

    It requires a special 'micro-stress' load and a special timing loop hacks
    in the kernel to hit in less than an hour, and even then you'd have to hit
    it hundreds or thousands of times, followed by some unusual and senseless
    cpuset configuration requests, including removing the top cpuset, to cause
    any visibly harm affects.

    One could, with perhaps a few days or weeks of such effort, get the
    reference count on the top cpuset below zero, and manage to crash the
    kernel by asking to remove the top cpuset.

    I found it by code inspection.

    The race was introduced when 'the_top_cpuset_hack' was introduced, and one
    piece of code was not updated. An old check for a possibly null task
    cpuset pointer needed to be changed to a check for a task marked
    PF_EXITING. The pointer can't be null anymore, thanks to
    the_top_cpuset_hack (documented in kernel/cpuset.c). But the task could
    have gone into PF_EXITING state after it was found in the task_list scan.

    If a task is PF_EXITING in this code, it is possible that its task->cpuset
    pointer is pointing to the top cpuset due to the_top_cpuset_hack, rather
    than because the top_cpuset was that tasks last valid cpuset. In that
    case, the wrong cpuset reference counter would be decremented.

    The fix is trivial. Instead of failing the system call if the tasks cpuset
    pointer is null here, fail it if the task is in PF_EXITING state.

    The code for 'the_top_cpuset_hack' that changes an exiting tasks cpuset to
    the top_cpuset is done without locking, so could happen at anytime. But it
    is done during the exit handling, after the PF_EXITING flag is set. So if
    we verify that a task is still not PF_EXITING after we copy out its cpuset
    pointer (into 'oldcs', below), we know that 'oldcs' is not one of these
    hack references to the top_cpuset.

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

    Paul Jackson
     
  • Add a note about "format=flowed" when sending patches and explain how to
    fix mozilla. Thunderbird has the similar options.

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

    Kirill Korotaev
     
  • With CONFIG_DEBUG_LOCK_ALLOC turned off i was getting sporadic failures in
    the locking self-test:

    ------------>
    | Locking API testsuite:
    ----------------------------------------------------------------------------
    | spin |wlock |rlock |mutex | wsem | rsem |
    --------------------------------------------------------------------------
    A-A deadlock: ok | ok | ok | ok | ok | ok |
    A-B-B-A deadlock: ok | ok | ok | ok | ok | ok |
    A-B-B-C-C-A deadlock: ok | ok | ok | ok | ok | ok |
    A-B-C-A-B-C deadlock: ok | ok | ok | ok | ok | ok |
    A-B-B-C-C-D-D-A deadlock: ok |FAILED| ok | ok | ok | ok |
    A-B-C-D-B-D-D-A deadlock: ok | ok | ok | ok | ok | ok |
    A-B-C-D-B-C-D-A deadlock: ok | ok | ok | ok | ok |FAILED|

    after much debugging it turned out to be caused by accidental chain-hash
    key collisions. The current hash is:

    #define iterate_chain_key(key1, key2) \
    (((key1) << MAX_LOCKDEP_KEYS_BITS/2) ^ \
    ((key1) >> (64-MAX_LOCKDEP_KEYS_BITS/2)) ^ \
    (key2))

    where MAX_LOCKDEP_KEYS_BITS is 11. This hash is pretty good as it will
    shift by 5 bits in every iteration, where every new ID 'mixed' into the
    hash would have up to 11 bits. But because there was a 6 bits overlap
    between subsequent IDs and their high bits tended to be similar, there was
    a chance for accidental chain-hash collision for a low number of locks
    held.

    the solution is to shift by 11 bits:

    #define iterate_chain_key(key1, key2) \
    (((key1) << MAX_LOCKDEP_KEYS_BITS) ^ \
    ((key1) >> (64-MAX_LOCKDEP_KEYS_BITS)) ^ \
    (key2))

    This keeps the hash perfect up to 5 locks held, but even above that the
    hash is still good because 11 bits is a relative prime to the total 64
    bits, so a complete match will only occur after 64 held locks (which doesnt
    happen in Linux). Even after 5 locks held, entropy of the 5 IDs mixed into
    the hash is already good enough so that overlap doesnt generate a colliding
    hash ID.

    with this change the false positives went away.

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

    Ingo Molnar
     
  • o As per ELF specifications, it looks like that elf note "namesz" field
    contains the length of "name" including the size of null character. And
    currently we are filling "namesz" without taking into the consideration
    the null character size.

    o Kexec-tools performs this check deligently hence I ran into the issue
    while trying to open /proc/kcore in kexec-tools for some info.

    Signed-off-by: Vivek Goyal
    Cc: "Eric W. Biederman"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vivek Goyal
     
  • This unlock/lock on a super-unlikely path isn't worth the kernel text.

    Cc: Vadim Lobanov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • Perform a code cleanup against the expand_fdtable() and expand_files()
    functions inside fs/file.c. It aims to make the flow of code within these
    functions simpler and easier to understand, via added comments and modest
    refactoring.

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

    Vadim Lobanov
     
  • * fix copright typo
    * remove trailing whitespace
    * remove Kernel Traffic from Resources. Zack, it was great reading!
    * Name Arjan by name and fix URL of "How to NOT" paper.
    * Remove "Last updated" tag.

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

    Alexey Dobriyan
     
  • Add tty locking around the audit and accounting code.

    The whole current->signal-> locking is all deeply strange but it's for
    someone else to sort out. Add rather than replace the lock for acct.c

    Signed-off-by: Alan Cox
    Acked-by: Arjan van de Ven
    Cc: Al Viro
    Cc: Oleg Nesterov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • If you send a priority character (as is done for flow control) then the tty
    driver can either have its own method for "jumping the queue" or the characrer
    can be queued normally. In the latter case we call the write method but
    without the atomic_write_lock taken elsewhere.

    Make this consistent. Note that the send_xchar method if implemented remains
    outside of the lock as it can jump ahead of a current write so must not be
    locked out by it.

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

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

    Alan Cox
     
  • …is case on some platforms

    Signed-off-by: Alan Cox <alan@redhat.com>
    Signed-off-by: Andrew Morton <akpm@osdl.org>
    Signed-off-by: Linus Torvalds <torvalds@osdl.org>

    Alan Cox
     
  • The driver has no business doing this work itself any more and hasn't for some
    years. When the new speed stuff goes in this will break entirely so fix it up
    ready.

    Also remove a #if 0 around a comment....

    Signed-off-by: Alan Cox
    Cc: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • If the chip detected "oscillator stop" condition, show an warning message.
    And initialize it with the Epoch time instead of leaving it with unknown
    date/time.

    Signed-off-by: Atsushi Nemoto
    Acked-by: Alessandro Zummo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Atsushi Nemoto
     
  • All sound/sound_firmware.c contains is mod_firmware_load() that is a legacy
    API only used by some OSS drivers.

    This patch builds it into an own sound_firmware module that is only built
    depending on CONFIG_SOUND_PRIME making the kernel slightly smaller for ALSA
    users.

    [alan@lxorguk.ukuu.org.uk: comment fix]
    Signed-off-by: Adrian Bunk
    Acked-by: Takashi Iwai
    Signed-off-by: Alan Cox
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     
  • I had to look back: this code was extracted from the module.c code in 2005.

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

    Rusty Russell
     
  • Add access control lists for tmpfs.

    Signed-off-by: Andreas Gruenbacher
    Cc: Hugh Dickins
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andreas Gruenbacher
     
  • The patches solve the following problem: We want to grant access to devices
    based on who is logged in from where, etc. This includes switching back and
    forth between multiple user sessions, etc.

    Using ACLs to define device access for logged-in users gives us all the
    flexibility we need in order to fully solve the problem.

    Device special files nowadays usually live on tmpfs, hence tmpfs ACLs.

    Different distros have come up with solutions that solve the problem to
    different degrees: SUSE uses a resource manager which tracks login sessions
    and sets ACLs on device inodes as appropriate. RedHat uses pam_console, which
    changes the primary file ownership to the logged-in user. Others use a set of
    groups that users must be in in order to be granted the appropriate accesses.

    The freedesktop.org project plans to implement a combination of a
    console-tracker and a HAL-device-list based solution to grant access to
    devices to users, and more distros will likely follow this approach.

    These patches have first been posted here on 2 February 2005, and again
    on 8 January 2006. We have been shipping them in SLES9 and SLES10 with
    no problems reported. The previous submission is archived here:

    http://lkml.org/lkml/2006/1/8/229
    http://lkml.org/lkml/2006/1/8/230
    http://lkml.org/lkml/2006/1/8/231

    This patch:

    Add some infrastructure for access control lists on in-memory
    filesystems such as tmpfs.

    Signed-off-by: Andreas Gruenbacher
    Cc: Hugh Dickins
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andreas Gruenbacher
     
  • POSIX states that poll() shall fail with EINVAL if nfds > OPEN_MAX. In
    this context, POSIX is referring to sysconf(OPEN_MAX), which is the value
    of current->signal->rlim[RLIMIT_NOFILE].rlim_cur in the linux kernel, not
    the compile-time constant which happens to also be named OPEN_MAX. In the
    current code, an application may poll up to max_fdset file descriptors,
    even if this exceeds RLIMIT_NOFILE. The current code also breaks
    applications which poll more than max_fdset descriptors, which worked circa
    2.4.18 when the check was against NR_OPEN, which is 1024*1024. This patch
    enforces the limit precisely as POSIX defines, even if RLIMIT_NOFILE has
    been changed at run time with ulimit -n.

    To elaborate on the rationale for this, there are three cases:

    1) RLIMIT_NOFILE is at the default value of 1024

    In this (default) case, the patch changes nothing. Calls with nfds > 1024
    fail with EINVAL both before and after the patch, and calls with nfds
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Chris Snook
     
  • For len equal to 4, we never call sppp_lcp_conf_parse_options(),
    therefore rmagic does not get initialized.

    Signed-off-by: Eric Sesterhenn
    Acked-by: Paul Fulghum
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric Sesterhenn
     
  • I've been using systemtap for some debugging and I noticed that it can't
    probe a lot of modules. Turns out it's kind of silly, the sections section
    of /sys/module is limited to 32byte filenames and many of the actual
    sections are a a bit longer than that.

    [akpm@osdl.org: rewrite to use dymanic allocation]
    Cc: Rusty Russell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ian S. Nelson
     
  • I just got a bounce telling me my contributions aren't welcome.

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

    Matthew Wilcox
     
  • People search maintainers for NBD and then decide it is not
    maintained.

    (akpm: ditto LVM. And other things, but I forget what they were)

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

    Pavel Machek