From: Denis D. <ddo...@po...> - 2001-01-16 07:48:14
|
Hello Niibe-san, I have been getting rare crashes in Linux 2.4.0 when handling SIGALRM signals. I have managed to trace the problem down and it seems that the sigreturn trap code is not getting flushed to the signal frame sometimes. The problem goes away completely if I do a flush_cache_all instead of flush_icache_range. I have attached a patch that does this. I cannot see anything wrong with the current flush_icache_range usage but suspect it is broken. The flush_cache_all is complete overkill so would be very keen to hear if you have a fix for flush_icache_range. The problem is very difficult to reproduce in a test program. It only happens when parts of the stack have already been mapped into the address cache and the signal handler is very short. I have a compiled version of lrz from the lrzsz package that consistently crashes 2.4.0 everytime it is run. I can send this to you if you want. Regards, Denis |