1. 09 Feb, 2003 5 commits
  2. 08 Feb, 2003 7 commits
    • Jamie Lokier's avatar
      [PATCH] CONFIG_PREEMPT fix of do_debug() · 28a59cb0
      Jamie Lokier authored
      If CONFIG_PREEMPT is enabled, and the kernel is preempted just before
      do_debug() has a chance to save the debug register values, DR6 could be
      read from the wrong CPU.
      
      It is exactly the same problem as reading %cr2 in the page fault
      handler.  Same fix: make the handler a interrupt gate, and enable
      interrupts only once safe.
      28a59cb0
    • Andrew Morton's avatar
      [PATCH] Fix compile warning for 'sys_exit_group' · 167b1210
      Andrew Morton authored
      sys_exit_group() doesn't return any value, and obviously cannot.
      
      So don't make the compiler unhappy about it by claiming it does.
      167b1210
    • Russell King's avatar
      [PATCH] Fix Alt-SysRQ-T status, and comment · cdb4ec5d
      Russell King authored
      Fix wrong order of process status. It's
      
      	#define TASK_RUNNING            0
      	#define TASK_INTERRUPTIBLE      1
      	#define TASK_UNINTERRUPTIBLE    2
      	#define TASK_STOPPED            4
      	#define TASK_ZOMBIE             8
      	#define TASK_DEAD               16
      
      but SysRQ printout routines switch stopped and zombie around.
      
      So, for one more time, here's another mailing of the same patch to fix
      this brokenness.  In addition, fix the wrong comment in fs/proc/array.c
      cdb4ec5d
    • Linus Torvalds's avatar
      More signal handling fixups for the threaded signal fix upheavals. · 5654988e
      Linus Torvalds authored
      This fixes the signal code to not wake up threads with blocked signals,
      especially noticeable with kernel threads that may not be able to handle
      signals at all.
      
      We also don't unnecessarily wake processes in TASK_UNINTERRUPTIBLE.
      5654988e
    • Chris Wedgwood's avatar
      [PATCH] missing sound include file · b07f7f53
      Chris Wedgwood authored
      Sound drivers need <linus/interrupt.h> for tasklets
      b07f7f53
    • Jaroslav Kysela's avatar
      ALSA update · 613b00db
      Jaroslav Kysela authored
        - emu10k1 - fixed makefile to not build synth module when emu10k1 is not selected
      613b00db
    • Jaroslav Kysela's avatar
      ALSA update · 0d3e15d1
      Jaroslav Kysela authored
        - cmipci driver cleanups (ac3 & surround)
        - replaced snd_dma_residue() with snd_dma_pointer()
        - GCC 3.3 warnings removal
        - timer interface
          - recoded using tasklet
          - improved slave timer locking (should be much faster)
          - added async support
        - improved ioctl32 wrapper functions
        - fixed Makefile problems (synth modules were build for not selected driver)
        - AC97 codec
          - improved SPSA control
          - moved reset function outside the main init code
          - improved ALC650 initialization
        - USB driver
          - added quirk for Roland XV-2020
      0d3e15d1
  3. 07 Feb, 2003 9 commits
    • Roland McGrath's avatar
      [PATCH] TASK_STOPPED wakeup cleanup · 03e21831
      Roland McGrath authored
      For handle_stop_signal to do the special case for SIGKILL and have it
      work right in all SMP cases (without changing all the existing ptrace
      stops), it needs to at least set TIF_SIGPENDING on each thread before
      resuming it.
      
      handle_stop_signal addresses a related race for SIGCONT by setting
      TIF_SIGPENDING already, so having SIGKILL handled the same way makes
      sense.
      
      Now it seems pretty clean to have handle_stop_signal resume threads for
      SIGKILL, and have on SIGKILL special case in group_send_sig_info.
      
      There is also an SMP race issue with cases like do_syscall_trace, i.e.
      TASK_STOPPED state set without holding the siglock.  So I think
      handle_stop_signal should call wake_up_process unconditionally.
      03e21831
    • Chris Wedgwood's avatar
      [PATCH] signal locking update · 631da088
      Chris Wedgwood authored
      Accomodate the signal locking moving from "tsk->sig" to "tsk->sighand".
      631da088
    • Daniel Jacobowitz's avatar
      Hand merge · 687bc18d
      Daniel Jacobowitz authored
      687bc18d
    • Linus Torvalds's avatar
      Split up "struct signal_struct" into "signal" and "sighand" parts. · 8eae2998
      Linus Torvalds authored
      This is required to get make the old LinuxThread semantics work
      together with the fixed-for-POSIX full signal sharing. A traditional
      CLONE_SIGHAND thread (LinuxThread) will not see any other shared
      signal state, while a new-style CLONE_THREAD thread will share all
      of it.
      
      This way the two methods don't confuse each other.
      8eae2998
    • Linus Torvalds's avatar
      Don't special-case SIGKILL/SIGSTOP - the blocking masks should · fef31b03
      Linus Torvalds authored
      already take care of it.
      
      This fixes kernel threads that _do_ block SIGKILL/STOP.
      fef31b03
    • Andrew Morton's avatar
      [PATCH] Fix possible uninitialised variable in vma merging code · b1ab5049
      Andrew Morton authored
      Spotted by davem.  Strange that it ever worked.  Don't know why the compiler
      didn't warn...
      b1ab5049
    • Roland McGrath's avatar
      [PATCH] do_sigaction locking cleanup · 530a7dbc
      Roland McGrath authored
      This changes do_sigaction to avoid read_lock(&tasklist_lock) on every
      call.  Only in the fairly uncommon cases where it's really needed will
      it take that lock (which requires unlocking and relocking the siglock
      for locking order).
      
      I also changed the ERESTARTSYS added in my earlier patch to ERESTARTNOINTR.
      That is an "instantaneous" case, and there is no reason to have it possibly
      return EINTR if !SA_RESTART (which AFAIK sigaction never could before, and
      it might not be kosher by POSIX); rollback is always better.
      530a7dbc
    • Roland McGrath's avatar
      [PATCH] SA_NOCLDWAIT now supported - update comments · 9e549588
      Roland McGrath authored
      This patch removes all the comments on the SA_NOCLDWAIT definitions,
      since SA_NOCLDWAIT is fully supported now.
      9e549588
    • Steven Cole's avatar
      [PATCH] Spelling fixes for consistent, dependent, persistent · da11be46
      Steven Cole authored
      This fixes the following common misspellings and their variants.
      
        consistant -> consistent
        dependant  -> dependent
        persistant -> persistent
      da11be46
  4. 06 Feb, 2003 19 commits
    • Daniel Jacobowitz's avatar
      Merge · 88d9b869
      Daniel Jacobowitz authored
      88d9b869
    • Linus Torvalds's avatar
      Merge · db2ee205
      Linus Torvalds authored
      db2ee205
    • Roland McGrath's avatar
      [PATCH] exit_notify/do_exit cleanup · 03cd9c23
      Roland McGrath authored
      Here is a cleanup moving the new pending thread signal check into
      exit_notify.
      
      I also made exit_notify and do_exit consistent in using the saved tsk
      variable instead of current, as most of do_exit already does.
      03cd9c23
    • Daniel Jacobowitz's avatar
      Hand-merge with Ingo's changes · b8fc4428
      Daniel Jacobowitz authored
      b8fc4428
    • Daniel Jacobowitz's avatar
      a866697c
    • Daniel Jacobowitz's avatar
    • Anton Blanchard's avatar
      [PATCH] missing include in pci-sysfs.c · 1b44f7f6
      Anton Blanchard authored
      Add a missing include for those pesky S_IRUGO thingys.
      1b44f7f6
    • Frank Davis's avatar
      [PATCH] 2.5.59 : drivers/media/video/bt819.c · 8673d7da
      Frank Davis authored
      This patch for bt819.c addresses buzilla bug #169 (compile error).
      8673d7da
    • Frank Davis's avatar
      [PATCH] 2.5.59 : drivers/media/video/saa7185.c · 06abcac6
      Frank Davis authored
      This patch to saa7185 to resolves buzilla bug #168 (compile error).  It
      has been sent to l-k and has received no objections.
      06abcac6
    • Frank Davis's avatar
      [PATCH] 2.5.59 : drivers/media/video/bt856.c · d41710a0
      Frank Davis authored
      This fixes a bt856.c compile error.  The driver now compiles.  Its a
      straightforward patch and have emailed l-k and no objections have been
      reported.
      d41710a0
    • Christoph Hellwig's avatar
      [PATCH] fix leaks in vxfs_read_fshead() · 24b8c8bc
      Christoph Hellwig authored
      The Stanford checker disclose that vxfs_read_fshead was missing any
      unwinding in the error cases..
      24b8c8bc
    • Andries E. Brouwer's avatar
      [PATCH] Doc fix · 365e2b77
      Andries E. Brouwer authored
      365e2b77
    • Andries E. Brouwer's avatar
      [PATCH] Remove dead code · 6b932555
      Andries E. Brouwer authored
      In struct char_dev the fields openers and sem are unused.
      The file char_dev.c claims that it is called differently.
      6b932555
    • Andrew Morton's avatar
      [PATCH] revert extra sendfile security hook patch · 1dbb976e
      Andrew Morton authored
      hm.  It seems that I sent this patch twice.
      
      After resyncing with your tree I go through and try to reapply all the sent
      patches, throwing out the ones which get a lot of rejects.  Just to make sure
      that everything got through OK.
      
      But it appears that that particular patch happily applied on top of itself,
      so I assumed it was not applied...
      1dbb976e
    • Roland McGrath's avatar
      [PATCH] Make sys_wait4() more readable · 202b74eb
      Roland McGrath authored
      I cleaned up sys_wait4; it was straightforward and I think a definite
      improvement.  While at it, I noticed that one of the races I fixed in the
      TASK_STOPPED case actually can happen earlier.  Between read_unlock and
      write_lock_irq, another thread could reap the process and make P invalid,
      so now I do get_task_struct before read_unlock and then the existing race
      checks catch all scenarios.
      
      Aside from the aforementioned race tweak, the code should be the same as
      in the previous patch (that Ingo and I have tested more thoroughly)
      modulo being moved into functions and some reformatting and comment
      changes.
      
      Oh, my old patch had one case where it failed to retake the read lock after
      a race bailout that I just noticed reading over it.  That's fixed too.
      
      These exit fixes were something I noticed incidentally and spent less time
      on than the signals changes.  Another few passes of eyeballs over them are
      certainly warranted.  (In particular, there are code paths like that one
      that check for specific races that have probably never been seen in
      practice, so those code paths have never run once.)
      202b74eb
    • Steven Cole's avatar
      [PATCH] Spelling fixes · 477c16ff
      Steven Cole authored
      OK, here is the diff against 2.5.59-bk2, now up to 880 lines due to an
      additional misspelling which crept in the -bk2 snapshot.
      
      Fixes 'seperate' -> 'separate' and 'definate' -> 'definite'.
      
      Kernal codrs cna't spel.
      477c16ff
    • Matthew Dobson's avatar
      [PATCH] Broken CLEAR_BITMAP() macro · ea4e0b5b
      Matthew Dobson authored
      The CLEAR_BITMAP() macro in include/linux/types.h is broken and doesn't
      round the bitmap size to the proper 'long' boundary.
      
      This fixes it by creating a macro BITS_TO_LONGS that just rounds a
      number of bits up to the closest number of unsigned longs.  This makes
      the DECLARE & CLEAR _BITMAP macros more readable and fixes the bug.
      ea4e0b5b
    • Mark Haverkamp's avatar
      [PATCH] fix megaraid driver compile error · 3fa327f8
      Mark Haverkamp authored
      This moves access of the host element to device since host has been
      removed from struct scsi_cmnd.
      3fa327f8
    • Ingo Molnar's avatar
      [PATCH] signal-fixes-2.5.59-A4 · ebf5ebe3
      Ingo Molnar authored
      this is the current threading patchset, which accumulated up during the
      past two weeks. It consists of a biggest set of changes from Roland, to
      make threaded signals work. There were still tons of testcases and
      boundary conditions (mostly in the signal/exit/ptrace area) that we did
      not handle correctly.
      
      Roland's thread-signal semantics/behavior/ptrace fixes:
      
       - fix signal delivery race with do_exit() => signals are re-queued to the
         'process' if do_exit() finds pending unhandled ones. This prevents
         signals getting lost upon thread-sys_exit().
      
       - a non-main thread has died on one processor and gone to TASK_ZOMBIE,
         but before it's gotten to release_task a sys_wait4 on the other
         processor reaps it.  It's only because it's ptraced that this gets
         through eligible_child.  Somewhere in there the main thread is also
         dying so it reparents the child thread to hit that case.  This means
         that there is a race where P might be totally invalid.
      
       - forget_original_parent is not doing the right thing when the group
         leader dies, i.e. reparenting threads to init when there is a zombie
         group leader.  Perhaps it doesn't matter for any practical purpose
         without ptrace, though it makes for ppid=1 for each thread in core
         dumps, which looks funny. Incidentally, SIGCHLD here really should be
         p->exit_signal.
      
       - one of the gdb tests makes a questionable assumption about what kill
         will do when it has some threads stopped by ptrace and others running.
      
      exit races:
      
      1. Processor A is in sys_wait4 case TASK_STOPPED considering task P.
         Processor B is about to resume P and then switch to it.
      
         While A is inside that case block, B starts running P and it clears
         P->exit_code, or takes a pending fatal signal and sets it to a new
         value. Depending on the interleaving, the possible failure modes are:
              a. A gets to its put_user after B has cleared P->exit_code
                 => returns with WIFSTOPPED, WSTOPSIG==0
              b. A gets to its put_user after B has set P->exit_code anew
                 => returns with e.g. WIFSTOPPED, WSTOPSIG==SIGKILL
      
         A can spend an arbitrarily long time in that case block, because
         there's getrusage and put_user that can take page faults, and
         write_lock'ing of the tasklist_lock that can block.  But even if it's
         short the race is there in principle.
      
      2. This is new with NPTL, i.e. CLONE_THREAD.
         Two processors A and B are both in sys_wait4 case TASK_STOPPED
         considering task P.
      
         Both get through their tests and fetches of P->exit_code before either
         gets to P->exit_code = 0.  => two threads return the same pid from
         waitpid.
      
         In other interleavings where one processor gets to its put_user after
         the other has cleared P->exit_code, it's like case 1(a).
      
      
      3. SMP races with stop/cont signals
      
         First, take:
      
              kill(pid, SIGSTOP);
              kill(pid, SIGCONT);
      
         or:
      
              kill(pid, SIGSTOP);
              kill(pid, SIGKILL);
      
         It's possible for this to leave the process stopped with a pending
         SIGCONT/SIGKILL.  That's a state that should never be possible.
         Moreover, kill(pid, SIGKILL) without any repetition should always be
         enough to kill a process.  (Likewise SIGCONT when you know it's
         sequenced after the last stop signal, must be sufficient to resume a
         process.)
      
      4. take:
      
              kill(pid, SIGKILL);     // or any fatal signal
              kill(pid, SIGCONT);     // or SIGKILL
      
          it's possible for this to cause pid to be reaped with status 0
          instead of its true termination status.  The equivalent scenario
          happens when the process being killed is in an _exit call or a
          trap-induced fatal signal before the kills.
      
      plus i've done stability fixes for bugs that popped up during
      beta-testing, and minor tidying of Roland's changes:
      
       - a rare tasklist corruption during exec, causing some very spurious and
         colorful crashes.
      
       - a copy_process()-related dereference of already freed thread structure
         if hit with a SIGKILL in the wrong moment.
      
       - SMP spinlock deadlocks in the signal code
      
      this patchset has been tested quite well in the 2.4 backport of the
      threading changes - and i've done some stresstesting on 2.5.59 SMP as
      well, and did an x86 UP testcompile + testboot as well.
      ebf5ebe3