1. 11 Jul, 2003 31 commits
  2. 10 Jul, 2003 9 commits
    • Miles Bader's avatar
      [PATCH] show_stack changes for v850 · ccfd6724
      Miles Bader authored
      ccfd6724
    • Miles Bader's avatar
      [PATCH] More irqreturn_t changes for v850 · ab48a939
      Miles Bader authored
      ab48a939
    • Miles Bader's avatar
      [PATCH] Use <asm-generic/statsfs.h> on v850 · 599cd887
      Miles Bader authored
      599cd887
    • Jens Axboe's avatar
      [PATCH] disk stats accounting fix · b8ac7066
      Jens Axboe authored
      We should only account file system requests, ones originating from
      __make_request(). Otherwise it skews the counters and they go negative
      really fast.
      b8ac7066
    • Andrew Morton's avatar
      [PATCH] epoll-per-fd fix · 9cbdaa44
      Andrew Morton authored
      From: Davide Libenzi <davidel@xmailserver.org>
      
      Fix epoll to allow pushing of multiple file descriptors sharing the same
      kernel's file*
      9cbdaa44
    • Andrew Morton's avatar
      [PATCH] devfs deadlock fix · 1cf2ec10
      Andrew Morton authored
      From: Andrey Borzenkov <arvidjaar@mail.ru>
      
      I finally hit a painfully trivial way to reproduce another long standing devfs
      problem - deadlock between devfs_lookup and devfs_d_revalidate_wait. When
      devfs_lookup releases directory i_sem devfs_d_revalidate_wait grabs it (it
      happens not for every path) and goes to wait to be waked up. Unfortunately,
      devfs_lookup attempts to acquire directory i_sem before ever waking it up ...
      
      To reproduce (2.5.74 UP or SMP - does not matter, single CPU system)
      
      ls /dev/foo & rm -f /dev/foo &
      
      or possibly in a loop but then it easily fills up process table. In my case it
      hangs 100% reliably - on 2.5 OR 2.4.
      
      The current fix is to move re-acquire of i_sem after all
      devfs_d_revalidate_wait waiters have been waked up.  Much better fix would be
      to ensure that ->d_revalidate either is always called under i_sem or always
      without.  But that means the very heart of VFS and I do not dare to touch it.
      
      The fix has been tested on 2.4 (and is part of unofficial Mandrake Club
      kernel); I expected the same bug is in 2.5; I just was stupid not seeing the
      way to reproduce it before.
      1cf2ec10
    • Andrew Morton's avatar
      [PATCH] devfs oops fix · 934acf6c
      Andrew Morton authored
      From: Andrey Borzenkov <arvidjaar@mail.ru>
      
      Doing concurrent lookups for the same name in devfs with devfsd and modules
      enabled may result in stack coruption.
      
      When devfs_lookup needs to call devfsd it arranges for other lookups for the
      same name to wait. It is using local variable as wait queue head. After
      devfsd returns devfs_lookup wakes up all waiters and returns. Unfortunately
      there is no garantee all waiters will actually get chance to run and clean up
      before devfs_lookup returns. so some of them attempt to access already freed
      storage on stack.
      
      It is trivial to trigger with SMP kernel (I have single-CPU system if it
      matters) doing
      
      while true
      do
        ls /dev/foo &
      done
      
      Without spinlock debug system usually hung dead with reset button as the only
      possibility.
      
      I was not able to reproduce it on 2.4 on single-CPU system - in 2.4
      devfs_d_revalidate_wait does not attempt to remove itself from wait queue
      so it appears to be safe.
      
      The patch makes lookup struct be allocated from heap and adds reference
      counter to free it when no more needed.
      934acf6c
    • Andrew Morton's avatar
      [PATCH] Fix yenta-socket oops · e59d9afb
      Andrew Morton authored
      From: Russell King <rmk@arm.linux.org.uk>
      
      Interrupts can sometimes occur before the socket thread is started.
      e59d9afb
    • Andrew Morton's avatar
      [PATCH] yenta-socket initialisation fix · 85cea662
      Andrew Morton authored
      From: Daniel Ritz <daniel.ritz@gmx.ch>
      
      init_socket() enables interrupts, and the interrupt handler does a wakeup.
      Let's initialise that waitqueue head before turning on the interrupts.
      85cea662