Arjan van de Ven wrote: > Pavel Emelianov wrote: >> This causes constructions like >> >> down_write(&mm1->mmap_sem); >> if (down_write_trylock(&mm2->mmap_sem)) { >> ... >> up_write(&mm2->mmap_sem); >> } >> up_write(&mm1->mmap_sem); >> >> generate a lockdep warning about circular locking dependence. > > please show me why this is safe, especially if you intermix it with > down_read()'s... like copy_to_user and co may do.
This is safe as once the task locks the mm1->mmap_sem and gets into '...' place it is *running* and will release booth semaphores for sure. > this feels like a very unsafe construct to me... > - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/