1. 05 Feb, 2009 8 commits
    • Andrew Morton's avatar
      revert "rlimit: permit setting RLIMIT_NOFILE to RLIM_INFINITY" · 60fd760f
      Andrew Morton authored
      Revert commit 0c2d64fb because it causes
      (arguably poorly designed) existing userspace to spend interminable
      periods closing billions of not-open file descriptors.
      
      We could bring this back, with some sort of opt-in tunable in /proc, which
      defaults to "off".
      
      Peter's alanysis follows:
      
      : I spent several hours trying to get to the bottom of a serious
      : performance issue that appeared on one of our servers after upgrading to
      : 2.6.28.  In the end it's what could be considered a userspace bug that
      : was triggered by a change in 2.6.28.  Since this might also affect other
      : people I figured I'd at least document what I found here, and maybe we
      : can even do something about it:
      :
      :
      : So, I upgraded some of debian.org's machines to 2.6.28.1 and immediately
      : the team maintaining our ftp archive complained that one of their
      : scripts that previously ran in a few minutes still hadn't even come
      : close to being done after an hour or so.  Downgrading to 2.6.27 fixed
      : that.
      :
      : Turns out that script is forking a lot and something in it or python or
      : whereever closes all the file descriptors it doesn't want to pass on.
      : That is, it starts at zero and goes up to ulimit -n/RLIMIT_NOFILE and
      : closes them all with a few exceptions.
      :
      : Turns out that takes a long time when your limit -n is now 2^20 (1048576).
      :
      : With 2.6.27.* the ulimit -n was the standard 1024, but with 2.6.28 it is
      : now a thousand times that.
      :
      : 2.6.28 included a patch titled "rlimit: permit setting RLIMIT_NOFILE to
      : RLIM_INFINITY" (0c2d64fb)[1] that
      : allows, as the title implies, to set the limit for number of files to
      : infinity.
      :
      : Closer investigation showed that the broken default ulimit did not apply
      : to "system" processes (like stuff started from init).  In the end I
      : could establish that all processes that passed through pam_limit at one
      : point had the bad resource limit.
      :
      : Apparently the pam library in Debian etch (4.0) initializes the limits
      : to some default values when it doesn't have any settings in limit.conf
      : to override them.  Turns out that for nofiles this is RLIM_INFINITY.
      : Commenting out "case RLIMIT_NOFILE" in pam_limit.c:267 of our pam
      : package version 0.79-5 fixes that - tho I'm not sure what side effects
      : that has.
      :
      : Debian lenny (the upcoming 5.0 version) doesn't have this issue as it
      : uses a different pam (version).
      Reported-by: default avatarPeter Palfrader <weasel@debian.org>
      Cc: Adam Tkac <vonsch@gmail.com>
      Cc: Michael Kerrisk <mtk.manpages@googlemail.com>
      Cc: <stable@kernel.org>		[2.6.28.x]
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      60fd760f
    • Tony Battersby's avatar
      shm: fix shmctl(SHM_INFO) lockup with !CONFIG_SHMEM · a68e61e8
      Tony Battersby authored
      shm_get_stat() assumes that the inode is a "struct shmem_inode_info",
      which is incorrect for !CONFIG_SHMEM (see fs/ramfs/inode.c:
      ramfs_get_inode() vs.  mm/shmem.c: shmem_get_inode()).
      
      This bad assumption can cause shmctl(SHM_INFO) to lockup when
      shm_get_stat() tries to spin_lock(&info->lock).  Users of !CONFIG_SHMEM
      may encounter this lockup simply by invoking the 'ipcs' command.
      
      Reported by Jiri Olsa back in February 2008:
      http://lkml.org/lkml/2008/2/29/74Signed-off-by: default avatarTony Battersby <tonyb@cybernetics.com>
      Cc: Jiri Kosina <jkosina@suse.cz>
      Reported-by: default avatarJiri Olsa <olsajiri@gmail.com>
      Cc: Hugh Dickins <hugh@veritas.com>
      Cc: <stable@kernel.org>		[2.6.everything]
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a68e61e8
    • Andrea Righi's avatar
      fbmem: don't call copy_from/to_user() with mutex held · 1f5e31d7
      Andrea Righi authored
      Avoid calling copy_from/to_user() with fb_info->lock mutex held in fbmem
      ioctl().
      
      fb_mmap() is called under mm->mmap_sem (A) held, that also acquires
      fb_info->lock (B); fb_ioctl() takes fb_info->lock (B) and does
      copy_from/to_user() that might acquire mm->mmap_sem (A), causing a
      deadlock.
      
      NOTE: it doesn't push down the fb_info->lock in each own driver's
      fb_ioctl(), so there are still potential deadlocks elsewhere.
      Signed-off-by: default avatarAndrea Righi <righi.andrea@gmail.com>
      Cc: Dave Jones <davej@redhat.com>
      Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
      Cc: Johannes Weiner <hannes@saeurebad.de>
      Cc: Krzysztof Helt <krzysztof.h1@wp.pl>
      Cc: Harvey Harrison <harvey.harrison@gmail.com>
      Cc: Stefan Richter <stefanr@s5r6.in-berlin.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      1f5e31d7
    • David Brownell's avatar
      rtc: rtc-dm355evm driver · afd8d0f9
      David Brownell authored
      Simple RTC driver for the MSP430 firmware on the DM355 EVM board.  Other
      than not supporting atomic reads/writes of all four bytes, this is
      reasonable as a basic no-alarm RTC.
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: default avatarKevin Hilman <khilman@deeprootsystems.com>
      Acked-by: default avatarAlessandro Zummo <a.zummo@towertech.it>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      afd8d0f9
    • Matthew Garrett's avatar
      misc: dell-laptop should depend on POWER_SUPPLY · 77a59265
      Matthew Garrett authored
      dell-laptop makes use of the power supply class information to choose
      which backlight interface to change. Add a depends on it.
      Signed-off-by: default avatarMatthew Garrett <mjg@redhat.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
      Cc: Len Brown <lenb@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      77a59265
    • Peter Zijlstra's avatar
      generic swap(): don't return a value from swap() · ac7b9004
      Peter Zijlstra authored
      The swap() macro is accidentally retuning the value of its first argument.
      Change it into a doesn't-return-anything macro before someone goes and
      relies upon this behaviour.
      Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Wu Fengguang <wfg@linux.intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ac7b9004
    • David Altobelli's avatar
      hpilo: open/close fix · c073b2db
      David Altobelli authored
      The device can take a while to respond to an open/close request, so
      increase the time kernel will wait for response (1 ms to 10ms).
      
      Also, properly clean up a channel on a failed open, by calling the channel
      close routine.  Just freeing the memory isn't sufficient, the device needs
      to be informed that the channel is no longer open, and the device memory
      cleared of references to freed dma buffer.
      Signed-off-by: default avatarDavid Altobelli <david.altobelli@hp.com>
      Cc: Greg KH <greg@kroah.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c073b2db
    • Andrew Morton's avatar
      kernel/async.c: fix printk warnings · 58763a29
      Andrew Morton authored
      alpha:
      
      kernel/async.c: In function 'run_one_entry':
      kernel/async.c:141: warning: format '%lli' expects type 'long long int', but argument 2 has type 'async_cookie_t'
      kernel/async.c:149: warning: format '%lli' expects type 'long long int', but argument 2 has type 'async_cookie_t'
      kernel/async.c:149: warning: format '%lld' expects type 'long long int', but argument 4 has type 's64'
      kernel/async.c: In function 'async_synchronize_cookie_special':
      kernel/async.c:250: warning: format '%lli' expects type 'long long int', but argument 3 has type 's64'
      
      Cc: Arjan van de Ven <arjan@infradead.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      58763a29
  2. 04 Feb, 2009 32 commits