- 09 Feb, 2003 2 commits
-
-
James Bottomley authored
This should add synchronous support and Tagged Command Queueing. At the moment, it cuts down on the number of command line options, but we can add those back in later. This patch also migrates the driver to the new device model for both MCA and EISA.
-
James Bottomley authored
The recent slab allocation changes mean that we no longer keep a permanent list of commands on the device_queue list. However, certain pieces of SCSI code relied on being able to traverse this list to find details of all outstanding commands (the error handler being the prime example). This code adds back a new dynamic cmd_list which keeps the list of commands currently allocated to the device. Since the list is dynamic, it is protected by a lock (list_lock).
-
- 08 Feb, 2003 7 commits
-
-
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.
-
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.
-
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
-
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.
-
Chris Wedgwood authored
Sound drivers need <linus/interrupt.h> for tasklets
-
Jaroslav Kysela authored
- emu10k1 - fixed makefile to not build synth module when emu10k1 is not selected
-
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
-
- 07 Feb, 2003 9 commits
-
-
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.
-
Chris Wedgwood authored
Accomodate the signal locking moving from "tsk->sig" to "tsk->sighand".
-
Daniel Jacobowitz authored
-
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.
-
Linus Torvalds authored
already take care of it. This fixes kernel threads that _do_ block SIGKILL/STOP.
-
Andrew Morton authored
Spotted by davem. Strange that it ever worked. Don't know why the compiler didn't warn...
-
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.
-
Roland McGrath authored
This patch removes all the comments on the SA_NOCLDWAIT definitions, since SA_NOCLDWAIT is fully supported now.
-
Steven Cole authored
This fixes the following common misspellings and their variants. consistant -> consistent dependant -> dependent persistant -> persistent
-
- 06 Feb, 2003 22 commits
-
-
Daniel Jacobowitz authored
-
Linus Torvalds authored
-
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.
-
Daniel Jacobowitz authored
-
Daniel Jacobowitz authored
-
Daniel Jacobowitz authored
-
Anton Blanchard authored
Add a missing include for those pesky S_IRUGO thingys.
-
Frank Davis authored
This patch for bt819.c addresses buzilla bug #169 (compile error).
-
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.
-
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.
-
Christoph Hellwig authored
The Stanford checker disclose that vxfs_read_fshead was missing any unwinding in the error cases..
-
Andries E. Brouwer authored
-
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.
-
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...
-
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.)
-
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.
-
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.
-
Mark Haverkamp authored
This moves access of the host element to device since host has been removed from struct scsi_cmnd.
-
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.
-
David Jeffery authored
This small patch does 2 things. It reworks the firmware/driver versioning messages to make them more understandable, and it fixes one case where the 64bit addressing changes caused error/success to not be properly reported to the serveraid tools.
-
David Jeffery authored
This large patch adds support for using 64bit addressing. Special thanks goes to Mike Anderson who did the initial versions of this patch.
-
David Jeffery authored
This large patch reworks much of the adapter initialization code. It splits the scsi initialization code from the pci initialization. It adds support for working with some future cards. It also removes the use of multiple pci_driver registrations and instead does its own adapter ordering.
-