Messages in this thread | | | Date | Thu, 16 Feb 2012 22:33:16 +0400 | From | Vasiliy Kulikov <> | Subject | Re: + syscalls-x86-add-__nr_kcmp-syscall-v8.patch added to -mm tree |
| |
On Thu, Feb 16, 2012 at 22:34 +0400, Cyrill Gorcunov wrote: > On Thu, Feb 16, 2012 at 10:21:06PM +0400, Vasiliy Kulikov wrote: > > On Thu, Feb 16, 2012 at 20:49 +0400, Cyrill Gorcunov wrote: > > > + err = mutex_lock_killable(m1); > > > + if (!err && likely(m1 != m2)) { > > > + err = mutex_lock_killable_nested(m2, SINGLE_DEPTH_NESTING); > > > > Doesn't it lead to a deadlock? > > > > mutex_lock_killable(task1) > > | mutex_lock_killable(task2) > > mutex_lock_killable_nested(task2) | > > (locked) | > > mutex_lock_killable_nested(task1) > > (locked) > > > > I suppose you should use some global lock (kcmp_lock) before both locks. > > but here is if (m1 > m2) and swap() do take place.
Ah, ok. Then this deadlock scenario is impossible, sorry.
-- Vasiliy Kulikov http://www.openwall.com - bringing security into open computing environments
| |