1. 10 Oct, 2003 1 commit
  2. 09 Oct, 2003 29 commits
  3. 10 Oct, 2003 1 commit
  4. 09 Oct, 2003 2 commits
    • Paul Mackerras's avatar
      Merge samba.org:/stuff/paulus/kernel/linux-2.5 · a605a1cf
      Paul Mackerras authored
      into samba.org:/stuff/paulus/kernel/for-linus-ppc
      a605a1cf
    • Paul Mackerras's avatar
      [PATCH] Fix compile on PPC · 19d4808f
      Paul Mackerras authored
      At the moment the aty128fb and matroxfb frame buffer drivers don't
      compile on PPC.  In both cases the error is pretty trivial.  This
      patch is the minimum change to fix the problems.
      
      The _IOR() type problem fix in aty128fb.c depends on the fact that the
      size of a pointer is the same as "size_t", so we don't have to use
      _IOR_BAD() to keep the ioctl number the same.
      19d4808f
  5. 08 Oct, 2003 7 commits
    • Linus Torvalds's avatar
      disable_irq() should synchronize with irq handler only if one exists. · ebf7c862
      Linus Torvalds authored
      Noted by Al Viro: if no handler exists (and we have IRQ_INPROGRESS set
      because of an earlier irq that got through), synchronize_irq() will
      end up waiting forever.
      ebf7c862
    • Jamie Lokier's avatar
      [PATCH] futex bug fixes · 8462805c
      Jamie Lokier authored
      This fixes two serious bugs in the futex code.
      
      One is a race condition which results in list corruption when
      FUTEX_REQUEUE is used.  It is due to the split locks change introduced
      in 2.6.0-test6, and oopses when triggered.
      
      The other is a security hole.  A program can use FUTEX_FD to create
      futexes on mms or inodes which don't reference them, and when those
      structures are reused by a different mm or inode, the addresses match.
      The effect is that a malicious or flawed program can steal wakeups from
      completely unrelated tasks, causing them to block (or worse if they are
      counting on the token passing property).
      
      These are the specific changes:
      
          1. Each futex_q retains a reference to its key mm or inode.
      
          2. The condition for a futex_q to indicate that it's woken can usually
             be interrogated lock-free.
      
          3. futex_wait calls the hash function once instead of three times,
             and usually takes the per-bucket lock once too.
      
          4. When a futex is woken, the per-bucket lock is not usually taken,
             so that's one less cache line transfer during heavy SMP futex use.
      
          5. The wait condition and barriers in futex_wait are simpler.
      
          5. FUTEX_REQUEUE is fixed.  The per-bucket lock juggling is done
             in such a way that there are no race conditions against the tests
             for whether a futex is woken.
      
      
      This patch is an combination of patches previously sent to the list.  An
      equivalent patch has been in Andrew Morton's tree for a while, with no
      failure reports.  Also I have been running it on my own SMP box for a
      while.  Conversely, we have received an oops report for the 2.6.0-test6
      code, so the fix is needed.
      8462805c
    • Jamie Lokier's avatar
      [PATCH] set sigio target to current->pid and only if not already set · c69f2894
      Jamie Lokier authored
      1. send_sigio() sends to a specific thread, _not_ a process.
         (It can also send to a process group, but that's not relevant here).
         This is useful, and should stay as it is.
      
         Therefore it makes _no sense_ to call f_setown() with current->tgid.
         Presently the kernel is inconsistent about it, with some places using
         current->pid and some others using current->tgid.
      
         This patch changes f_setown() calls to use current->pid.
      
      2. In some places, f_setown() is called not at the user's direct request,
         but as a side effect of another function.  Specifically: dnotify and
         file leases.
      
         It is good to allow a program the flexibility to specify a different
         pid than the default, using F_SETOWN.  Presently they can do this after
         the dnotify or lease call, but there is a small time window when it
         will be temporarily set to current->tgid (which as pointed out above,
         is not always right).
      
         The window is avoidable if the program can use F_SETOWN prior to the
         dnotify or lease call.  This is exactly what the "force" argument to
         f_setown() is for, and this patch changes it to zero in those callers.
      
         This change is not likely to affect any existing programs.
      c69f2894
    • Trond Myklebust's avatar
      [PATCH] NFS: Enable NFS_DIRECTIO support · d9e033b3
      Trond Myklebust authored
      Enable NFS_DIRECTIO support now that it has been fixed...
      d9e033b3
    • Trond Myklebust's avatar
      [PATCH] NFS: Fix O_DIRECT code · 2d631698
      Trond Myklebust authored
        - Support synchronous directio only. Defer asynchronous directio until
          it can be made safe.
        - If read/write exits due to an error, return number of bytes read/written
          prior to occurrence of the error.
        - Make sure we mark read pages as dirty in case we're doing zero-copy tricks.
          Export set_page_dirty_lock() for use by NFS directio.
        - Ensure we revalidate stale attribute info.
      2d631698
    • Trond Myklebust's avatar
      [PATCH] NFS: synchronous NFSv3/v4 COMMIT · cd21f96e
      Trond Myklebust authored
      Add support for synchronous calls to the NFSv3/v4 COMMIT functions.
      cd21f96e
    • Trond Myklebust's avatar
      [PATCH] NFS: remove broken O_DIRECT wait code · 88a88295
      Trond Myklebust authored
      It is in any case no longer needed.
      88a88295