![]() | |||||||||||||
Messages in this thread |
On Sun, 30 Sep 2007, Ingo Molnar wrote: > * Martin Schwidefsky <schwidefsky@de.ibm.com> wrote: > > > Hi Ingo, > > I finally found the bug that causes tst-robust8 from the glibc to fail > > on s390x. Turned out to be a common code problem with the processing of > > the robust futex list. The patch below fixes the bug for me. > > good catch! A quick preliminary review of your patch indicates it's fine > - and it might be v2.6.23 material. > > Acked-by: Ingo Molnar <mingo@elte.hu> Acked-by: Thomas Gleixner <tglx@linutronix.de> > > Calling handle_futex_death in exit_robust_list for the different > > robust mutexes of a thread basically frees the mutex. Another thread > > might grab the lock immediately which updates the next pointer of the > > mutex. fetch_robust_entry over the next pointer might therefore branch > > into the robust mutex list of a different thread. This can cause two > > problems: 1) some mutexes held by the dead thread are not getting > > freed and 2) some mutexs held by a different thread are freed. The > > next point need to be read before calling handle_futex_death. > > nasty race... Ulrich, Thomas, do you concur? Yes. Where do they sell those brown paperbags again ? tglx - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ | ||||||||||||
| Last update: 2007-09-30 17:57 [W:0.590 / U:0.200 seconds] ©2003-2008 Jasper Spaans | |||||||||||||