- 08 Feb, 2003 4 commits
-
-
Kai Germaschewski authored
If SUBDIRS is set manually on the command line, the contents of .tmp_versions are not deleted before descending and can accumulate stale entries. Print a warning if that case is detected, but deal with it gracefully.
-
Kai Germaschewski authored
We're still using the old genksyms binary, that's why we have to postprocess the output to convert it into a linker script - that postprocessing got confused by "__verify_write". Kick out the grep, do it all and correctly within sed. Bug reported by Thomas Molina.
-
Kai Germaschewski authored
Setting export-objs is not necessary anymore, so warn on encountering it to prevent it from creeping back in ;) Also, make the error when we find someone still using O_TARGET non-fatal, so that people sharing stuff between 2.4 and 2.5 don't have more hassle than necessary.
-
Kai Germaschewski authored
We need to collect a list of all modules during the recursive build. I used a "touch .tmp_versions/<path/to/module.ko>" to do so, which however doesn't work so well, when path/to isn't inside the kernel tree. The best way to build external modules is currently using kbuild by saying "make SUBDIRS=/some/external/dir modules", which was thus broken. While this way is not all that optimal and I hope to come up with something better before 2.6, it works and should keep working, so this patch fixes the usage above. Instead of touching files with the entire path added, we just create a <module>.mod file in $(MODVERDIR) now, and save the path to the module.ko in it. Since module names are unique, a flat hierarchy is actually fine here.
-
- 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 27 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.
-
David Jeffery authored
This small patch fixes the length of the IPS_ENQ struct. It was too short which can cause the adapter to write beyond the the end of the struct during driver initialization and corrupt part of memory.
-
http://linux-scsi.bkbits.net/scsi-for-linus-2.5Linus Torvalds authored
into home.transmeta.com:/home/torvalds/v2.5/linux
-
James Bottomley authored
into raven.il.steeleye.com:/home/jejb/BK/scsi-for-linus-2.5
-
Christoph Hellwig authored
I just couldn't see the mess anymore.. Nuke the ifdefs and use sane variable names. Some more small nitpicks but no behaviour changes at all.
-
Rusty Russell authored
From: Steven Cole <elenstev@mesatop.com> Here are some help texts from 2.4.21-pre3 Configure.help which are needed in 2.5.59 drivers/scsi/Kconfig. Steven
-