1. 21 Jan, 2011 2 commits
    • Linus Torvalds's avatar
      Fix broken "pipe: use event aware wakeups" optimization · 28e58ee8
      Linus Torvalds authored
      Commit e462c448 ("pipe: use event aware wakeups") optimized the pipe
      event wakeup calls to avoid wakeups if the events do not match the
      requested set.
      
      However, the optimization was buggy, in that it didn't actually use the
      correct sets for the events: when we make room for more data to be
      written, the pipe poll() routine will return both the POLLOUT _and_
      POLLWRNORM bits.  Similarly for read.
      
      And most critically, when a pipe is released, that will potentially
      result in POLLHUP|POLLERR (depending on whether it was the last reader
      or writer), not just the regular POLLIN|POLLOUT.
      
      This bug showed itself as a hung gnome-screensaver-dialog process, stuck
      forever (or at least until it was poked by a signal or by being traced)
      in a poll() system call.
      
      Cc: Davide Libenzi <davidel@xmailserver.org>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: Eric Dumazet <eric.dumazet@gmail.com>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      28e58ee8
    • Linus Torvalds's avatar
      i915: Fix i915 suspend delay · d7b9935a
      Linus Torvalds authored
      During system suspend, the "wait for ring buffer to empty" loop would
      always time out after three seconds, because the faster cached ring
      buffer head read would always return zero.  Force the slow-and-careful
      PIO read on all but the first iterations of the loop to fix it.
      
      This also removes the unused (and useless) 'actual_head' variable that
      tried to approximate doing this, but did it incorrectly.
      
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: Rafael J. Wysocki <rjw@sisk.pl>
      Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
      Cc: Dave Airlie <airlied@linux.ie>
      Cc: DRI mailing list <dri-devel@lists.freedesktop.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d7b9935a
  2. 20 Jan, 2011 4 commits
  3. 19 Jan, 2011 18 commits
  4. 18 Jan, 2011 16 commits