1. 30 Sep, 2006 15 commits
  2. 29 Sep, 2006 25 commits
    • David S. Miller's avatar
    • David S. Miller's avatar
      [SPARC]: Don't zero out tail during copy_from_user_inatomic(). · 3a1d5c84
      David S. Miller authored
      Actually, since we use the same code for all the copying
      types in and out of userspace, we check at runtime whether
      preemption is disabled.
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3a1d5c84
    • Ollie Wild's avatar
      [PATCH] uml build fix · d6c64102
      Ollie Wild authored
      Cc: Jeff Dike <jdike@addtoit.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      d6c64102
    • David Woodhouse's avatar
      [PATCH] MLSXFRM: fix mis-labelling of child sockets · 2148ccc4
      David Woodhouse authored
      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: default avatarDavid Woodhouse <dwmw2@infradead.org>
      Acked-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      Acked-by: default avatarJames Morris <jmorris@namei.org>
      Acked-by: default avatarPaul Moore <paul.moore@hp.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      2148ccc4
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband · 9a69d1ae
      Linus Torvalds authored
      * '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
        ...
      9a69d1ae
    • Linus Torvalds's avatar
      Merge git://oss.sgi.com:8090/xfs/xfs-2.6 · c0341b0f
      Linus Torvalds authored
      * 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
        ...
      c0341b0f
    • Yoichi Yuasa's avatar
      [PATCH] i2c-sibyte: Fix modular build breakage · ae1390d8
      Yoichi Yuasa authored
      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: default avatarYoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
      Signed-off-by: default avatarJean Delvare <khali@linux-fr.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      ae1390d8
    • Paul Jackson's avatar
      [PATCH] cpuset: fix obscure attach_task vs exiting race · 181b6480
      Paul Jackson authored
      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: default avatarPaul Jackson <pj@sgi.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      181b6480
    • Kirill Korotaev's avatar
      [PATCH] SubmittingPatches: add a note about "format=flowed" when sending patches · 683e91cb
      Kirill Korotaev authored
      Add a note about "format=flowed" when sending patches and explain how to
      fix mozilla.  Thunderbird has the similar options.
      Signed-off-by: default avatarKirill Korotaev <dev@openvz.org>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      683e91cb
    • Ingo Molnar's avatar
      [PATCH] lockdep core: improve the lock-chain-hash · 03cbc358
      Ingo Molnar authored
      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: default avatarIngo Molnar <mingo@elte.hu>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      03cbc358
    • Vivek Goyal's avatar
      [PATCH] Kcore elf note namesz field fix · 632dd205
      Vivek Goyal authored
      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: default avatarVivek Goyal <vgoyal@in.ibm.com>
      Cc: "Eric W. Biederman" <ebiederm@xmission.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      632dd205
    • Andrew Morton's avatar
      [PATCH] expand_fdtable(): remove pointless unlock+lock · 327dcaad
      Andrew Morton authored
      This unlock/lock on a super-unlikely path isn't worth the kernel text.
      
      Cc: Vadim Lobanov <vlobanov@speakeasy.net>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      327dcaad
    • Vadim Lobanov's avatar
      [PATCH] Clean up expand_fdtable() and expand_files() · 74d392aa
      Vadim Lobanov authored
      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: default avatarVadim Lobanov <vlobanov@speakeasy.net>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      74d392aa
    • Alexey Dobriyan's avatar
      [PATCH] Documentation/SubmittingDrivers: minor update · 3706baa8
      Alexey Dobriyan authored
      * 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: default avatarAlexey Dobriyan <adobriyan@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      3706baa8
    • Alan Cox's avatar
      [PATCH] audit/accounting: tty locking · eb84a20e
      Alan Cox authored
      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: default avatarAlan Cox <alan@redhat.com>
      Acked-by: default avatarArjan van de Ven <arjan@linux.intel.com>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: Oleg Nesterov <oleg@tv-sign.ru>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      eb84a20e
    • Alan Cox's avatar
      [PATCH] Fix locking for tty drivers when doing urgent characters · 5f412b24
      Alan Cox authored
      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: default avatarAlan Cox <alan@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      5f412b24
    • Alan Cox's avatar
      [PATCH] specialix - remove private speed decoding · 67cc0161
      Alan Cox authored
      Signed-off-by: default avatarAlan Cox <alan@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      67cc0161
    • Alan Cox's avatar
      [PATCH] istallion: Remove private baud rate decoding, which is also broken in... · 1db27c11
      Alan Cox authored
      [PATCH] istallion: Remove private baud rate decoding, which is also broken in this case on some platforms
      Signed-off-by: default avatarAlan Cox <alan@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      1db27c11
    • Alan Cox's avatar
      [PATCH] generic_serial: remove private decoding of baud rate bits · d720bc4b
      Alan Cox authored
      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: default avatarAlan Cox <alan@redhat.com>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      d720bc4b
    • Atsushi Nemoto's avatar
      [PATCH] RTC: more XSTP/VDET support for rtc-rs5c348 driver · 13c73f04
      Atsushi Nemoto authored
      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: default avatarAtsushi Nemoto <anemo@mba.ocn.ne.jp>
      Acked-by: default avatarAlessandro Zummo <a.zummo@towertech.it>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      13c73f04
    • Adrian Bunk's avatar
      [PATCH] build sound/sound_firmware.c only for OSS · b9dd6ffc
      Adrian Bunk authored
      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: default avatarAdrian Bunk <bunk@stusta.de>
      Acked-by: default avatarTakashi Iwai <tiwai@suse.de>
      Signed-off-by: default avatarAlan Cox <alan@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      b9dd6ffc
    • Rusty Russell's avatar
      [PATCH] stop_machine.c copyright · e5582ca2
      Rusty Russell authored
      I had to look back: this code was extracted from the module.c code in 2005.
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      e5582ca2
    • Andreas Gruenbacher's avatar
      [PATCH] Access Control Lists for tmpfs · 39f0247d
      Andreas Gruenbacher authored
      Add access control lists for tmpfs.
      Signed-off-by: default avatarAndreas Gruenbacher <agruen@suse.de>
      Cc: Hugh Dickins <hugh@veritas.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      39f0247d
    • Andreas Gruenbacher's avatar
      [PATCH] Generic infrastructure for acls · f0c8bd16
      Andreas Gruenbacher authored
      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: default avatarAndreas Gruenbacher <agruen@suse.de>
      Cc: Hugh Dickins <hugh@veritas.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      f0c8bd16
    • Chris Snook's avatar
      [PATCH] enforce RLIMIT_NOFILE in poll() · 4e6fd33b
      Chris Snook authored
      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 <=
      1024 pass the check both before and after the patch, since 1024 is the
      initial value of max_fdset.
      
      2) RLIMIT_NOFILE has been raised above the default
      
      In this case, poll() becomes more permissive, allowing polling up to
      RLIMIT_NOFILE file descriptors even if less than 1024 have been opened.
      The patch won't introduce new errors here.  If an application somehow
      depends on poll() failing when it polls with duplicate or invalid file
      descriptors, it's already broken, since this is already allowed below 1024,
      and will also work above 1024 if enough file descriptors have been open at
      some point to cause max_fdset to have been increased above nfds.
      
      3) RLIMIT_NOFILE has been lowered below the default
      
      In this case, the system administrator or the user has gone out of their
      way to protect the system from inefficient (or malicious) applications
      wasting kernel memory.  The current code allows polling up to 1024 file
      descriptors even if RLIMIT_NOFILE is much lower, which is not what the user
      or administrator intended.  Well-written applications which only poll
      valid, unique file descriptors will never notice the difference, because
      they'll hit the limit on open() first.  If an application gets broken
      because of the patch in this case, then it was already poorly/maliciously
      designed, and allowing it to work in the past was a violation of POSIX and
      a DoS risk on low-resource systems.
      
      With this patch, poll() will permit exactly what POSIX suggests, no more,
      no less, and for any run-time value set with ulimit -n, not just 256 or
      1024.  There are existing apps which which poll a large number of file
      descriptors, some of which may be invalid, and if those numbers stradle
      1024, they currently fail with or without the patch in -mm, though they
      worked fine under 2.4.18.
      Signed-off-by: default avatarChris Snook <csnook@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      4e6fd33b